已经定义一个一维数组a[4];&a表示一个二维数组吗?&a+1表示a[1][0]吗?

如题所述

第1个回答  2020-08-15
1
&a不会表示2维数组,他是对a数组的首地址取地址值,这个时候&a就是数组a的首地址
2
&a+1
表示的是一个地址,哪个地址呢,从数组a的首地址便宜
sizeof(a)大小个字节的地址,在这里偏移的是
sizeof(a)
=
16;
3
一维数组和二维数组在内存中都是连续的内存,没有什么不同,所以维度只是人为的区分。
第2个回答  2020-05-27
&a的类型是int
(*)[4]
并不能说&a表示一个严格意义上的二维数组
或者你可以把他想成一个“每一行”只有一个元素的二位数组
&a+1是a[1][0]的地址值
相似回答