a数组中首元素地址是a对吗?

如题所述

不对。若有定义:int a[5],则a数组中首元素地址可以表示为a,a[0],*(a+0),*a,&a[0]。

数组及数组元素的地址表示为:a是二维数组名,也是二维数组0行的首地址,等于1000。a[0]是第一个一维数组的数组名和首地址,因此也为1000。

*(a+0)或*a是与a[0]等效的,它表示一维数组a[0]0号元素的首地址。也为1000。&a[0]是一维数组a的0列元素首地址,同样是1000。因此,a,a[0],*(a+0),*a,&a[0]是相等的。都是a数组中首元素地址。

扩展资料:

a表示数组名,也代表数组首地址。此首地址并非a[0][0]元素的地址,而是a[0]这个数组的地址(虽然具体数值一样,但意义不同);所以对于2为数组a[3][3];a+1表示的是一维数组a[1]的地址,

*(a+1)表示的是数组a[1]中第一个元素的地址,所以*(*(a+1)+2)表示数组a[1]中第3个元素的值也就相当于a[1][2],其值为6;

温馨提示:答案为网友推荐,仅供参考