直接上demo,代码如下:
int main() { int arr[10]; printf("%d \n", &arr); //7338716 printf("%d \n", arr); //7338716 printf("%d \n", &arr[0]); //7338716 } 在上面的代码中,打印出来的结果都是一样的。但是指针的类型是不一样的
&arr的是指向数组的指针
而arr和&arr[0]则是指向数组首元素的指针。
以下代码可以证明:
int main() { int arr[10]; printf("%d \n", &arr+1); //15726500 printf("%d \n", arr+1); //15726464 printf("%d \n", &arr[0]+1); //15726464 }
至于对指针加1的理解
参考这篇文章:
https://blog.csdn.net/Think88666/article/details/90437703