我有以下功能:
void foo(int arr[])
{
arr++; // No error. If I dereference arr and print it, I get 2
}
int main()
{
int x[3];
x[0]=1;
x[1]=2;
x[2]=3;
foo(x); //No error
x++; //Error.
}
为什么我在foo()执行操作时没有出错,但是当我在main中执行操作时我得到一个错误? 据我所知,foo()中的arr和main()中的x都指向完全相同的位置,即x中的第一个元素。所以我应该能够同时执行x ++和arr ++。