1.arr和&arr
代码如下:
我们都知道,指针的初始化是通过 & 操作符来完成的,如果这样写:
int a = 1;
int *p = a;
那编译的过程中会报一个警告,进行输出的话,会发现指针找不到 a 的值。
那为什么数组可以不使用 & 操作符呢?
首先,arr是数组名,而数组名就是指向数组第一个元素的指针,即数组名代表了这个数组的首地址。
*p = arr就是直接将 arr (数组首地址)赋值给 p。
同时,数组第一个元素的地址是数组的地址。
*p1 = &arr 是获取 arr 这个数组的地址,这里获取的地址和上面的方式获取的地址是一样的。可以通过 %p 的输出方式看到。
2.arr和arr[0]
上面我们知道了数组名代表的三层含义:
(1)数组
ÿ