C 错误:赋值从整数生成指针,但没有强制转换

C 错误:赋值从整数生成指针,但没有强制转换,c,C,int findNumber(char*exp,int i,int*num) { int k=i; char*p; p=exp[i];//=“0”和&*pp是一个char*,因此您需要分配一个指向它的指针,但exp[i]从数组返回一个char元素。请尝试 int findNumber(char *exp,int i,int *num) { int k=i; char *p; p=exp[i]; //<-- here w

int findNumber(char*exp,int i,int*num)
{    
int k=i;
char*p;

p=exp[i];//=“0”和&*p
p
是一个
char*
,因此您需要分配一个指向它的指针,但
exp[i]
从数组返回一个
char
元素。请尝试

int findNumber(char *exp,int i,int *num)    
{    
    int k=i;    
    char *p;    
    p=exp[i]; //<-- here
    while(*p>='0'&&*p<='9')    
    {
        (*num)=(*num)*10+(*p);
        k++;
        p++;
    }
    return k;
}


相反。

请更正该行,使其对应于以下
p=&(exp[i]);
这意味着您正在分配exp[i]的指针到p.

您需要获取的地址,而不是,然后传递给
p
,这是一个指针。换句话说,您将
char
分配给
char*一个
char*值,该值是从
exp`数组中的
i
索引处返回的

试试这个:
p=&exp[i];

p = &exp[i];
p = (exp + i);