我想知道为什么定义二维数组a[2][3]后
a+1表示的是第二行的地址而不是
第一行的第二个元素?
a[2][3]的另一层含义是,a中有两个数组,这两个数组中有3个元素。a+1就是指向第1个元素(从0开始),也就是第二行数组。
从指针的角度来说,
int a[2][3]相当于
int **p;
p = new int*[2];
for(i = 0; i < 2;i++)
{
p[i] = new int[3]; //
}
所以a+1不可能跨过两层地址去直接表示第一行的第二个元素。