在以下代码中:
void main()
{
char a[]={1,5,3,4,5,6};
printf("%d\n",*(a++)); //line gives error: wrong type argument to increment
printf("%d\n",*(a+1));
}
Run Code Online (Sandbox Code Playgroud)
第4行和第5行之间有什么区别.我没有收到第5行的任何错误或警告.
MOH*_*MED 27
a是一个数组对象而不是指针,因此您无法a++
对数组对象使用该操作.因为这相当于:
a = a+ 1;
Run Code Online (Sandbox Code Playgroud)
在这里,您将为数组对象分配一个C中不允许的新值.
a + 1返回一个指向a数组元素1的指针,这是允许的