<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]-->
一维数组名和一维数组名前加取地址符“& ”均表示一维数组的首地址。例如:
A a[10];
a;// 表示数组的首地址
&a;// 同样表示数组的首地址
这两种表示方法的区别在于,数组名a 类似于数组元素的指针,即A *
,a 表示数组元素a[0] 的地址,a+1 表示数组元素a[1] 的地址,a+1 与a 的差值是一个数组元素所占的字节数(sizeof(A)
)。数组名前加取地址符&a ,类似于数组的指针,即A(*)[10] ,&a+1 与&a 的差值是整个数组占的字节数(sizeof(A)*10 )。
如果把n 维数组理解为由n-1 维数组作为数组元素的一维数组,便很容易得到n 维数组名前加取地址符“&
”后的数据类型。例如:
A b[10][20];
数组名b 近似A(*)[20] (一维数组的指针),数组名前加取地址符&b 近似A(*)[10][20]
(二维数组的指针)。