数组名和数组第一个元素的地址区别
// 地址相同,但是地址指向的单位不同,地址+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字节。
浙公网安备 33010602011771号