use*_*652 8 c++ arrays pointers
如果我有一个像这样声明的数组:
int a[3][2];
存储在地址A.
A
那么+ 1等于A+2*4,这对我来说很清楚,但为什么&a+1等于A+6*4?
A+2*4
&a+1
A+6*4
Mys*_*ial 7
a是一个数组int[2].哪个有尺寸2 * sizeof(int).这就是原因a + 1 = A + 2*4.(因为sizeof(int) = 4在你的情况下)
a
int[2]
2 * sizeof(int)
a + 1 = A + 2*4
sizeof(int) = 4
但是,&a是一个指针int[3][2].因此sizeof(int[3][2]) = 6 * sizeof(int),因为:&a + 1 = A + 6*4
&a
int[3][2]
sizeof(int[3][2]) = 6 * sizeof(int)
&a + 1 = A + 6*4
归档时间:
13 年,11 月 前
查看次数:
121 次
最近记录: