我正在学习C中的指针,并从一个基本想法开始:使用指针来完成并更改数组。然后打印该数组。我犯了什么错误?
我被告知你可以通过将它分配给指针变量来完成数组,如下所示:
int main(void){
int i = 0;
char entry[40], n, p;
p = entry;
printf("Enter a sentence: ");
while ((n = getchar()) != '\n'){
*(p + i) = n;
i++;
}
*(p + i) = 0;
printf("%s", p);
return 0;
}
我现在已经尝试了不同的方法,可以使用一些帮助。我一直收到错误,例如:
赋值从没有强制转换的指针生成整数
作业中的无效左值
答案 0 :(得分:1)
赋值使用指针生成整数而不使用强制转换
这是指代码p = entry
,您尝试将指针(entry
)分配给p,类型为char
赋值中的左值无效
这是指*(p + i) = n
,因为(p + i)
是一个数字(对于这种情况,char可以被视为int)而不是指针,因此无法分配。