如何定义一个自增之后在二维数组中移动到下一行的指针?如何定义一个自增之后在二维数组中移动到下一行的指针?
int a[3][2]=
{
{1,2},
{3,4},
{5,6}
};
cout << **(a+0) << endl;
楼上说的不对。现有 int a[m][n]={};
所以```*a+1 ```指的是第一行的第二个元素的地址
``` *(a+i)```表示的是第i行的地址。
所以要实现自加就移动一行,可以是二维数组名``` *(a++),```这就是下一行的地址了。``` *(*(a++)+j)```就实现了访问下一行的第j个元素了。
用二重数组,比如
int ** arr;
arr += 第一维长度;
自增是不能移动到下一行的,自增实现的是++,
int a[m][n]={""};
*a+1;表示下一行;
*(a+1):表示下一个元素位置。
若果now<n,移动到x行的当前位置:a[m*x+now]。
要知道二维数组其实也可以看成是一个长的一位数组,所以它的自增是每次增加一个数组基本类型的长度。而不是基本类型的倍数。
要知道二维数组其实也可以看成是一个长的一位数组,所以它的自增是每次增加一个数组基本类型的长度。而不是基本类型的倍数。