数组名和数组第一个元素的地址区别

// 地址相同,但是地址指向的单位不同,地址+1,这里的”1“不同。
int a[2][2]={1,2,3,4}; printf("&a %x\t%x\n",&a,&a+1); printf("&a[0] %x\t%x\n",&a[0],&a[0]+1); printf("&a[0][0] %x\t%x\n",&a[0][0],&a[0][0]+1);

输出分别是:地址    起始地址    加1后地址

 

 

 

&a
&a[0]
&a[0][0]
每个整型大小为4字节;
起始地址是相同的,但是加一之后地址不同,也就是说单位不同,地址&a对应的单位是整个数组大小4*4=16字节;
&a[0]地址对应的单位大小是一行,2*48子节;
&a[0][0]地址对应的单位大小是一个,1*4字节。


posted @ 2020-05-09 18:58  Tracyummy  阅读(763)  评论(0编辑  收藏  举报