数组的地址

use*_*652 8 c++ arrays pointers

如果我有一个像这样声明的数组:

int a[3][2];
Run Code Online (Sandbox Code Playgroud)

存储在地址A.

那么+ 1等于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[3][2].因此sizeof(int[3][2]) = 6 * sizeof(int),因为:&a + 1 = A + 6*4