直接上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的理解
参考这篇文章: