定义语句 float a[5], *p, *q; p=q=a; 表示定义了一个名为a的浮点型数组,其中包含了 5 个元素,同时定义了两个指向 float 类型的指针 p和 q ,并将他们都指向了 a 数组的首元素。也就是说,p 和 q 的初始值都为 &a[0]。
因此,能正确表示数组 a 首元素地址(即 &a[0])的表达式有:
a
&a[0]
p
q
p+0
q+0
这些表达式所表示的值都是数组 a 的首地址即 &a[0],但是它们的类型、语法和实际用法可能略有不同。例如,a 和 &a[0] 是等价的,但前者是数组名,可以直接被作为指向第一个数组元素的指针使用,而后者是取址运算符作用于数组下标为 0 的元素上的结果,相当于对该元素的取地址。而 p、q、p+0 和 q+0 都是指针,可以通过解引用操作 *p 或 *q 来获取到数组首元素的值。