我知道如何使用一维数组来处理指针,(数组的标识符指向它的第一个元素)...,但我想知道我如何使用指针工作相同但使用超过数组的数组一个维度?
答案 0 :(得分:1)
同样的:
int a[10]; // array(10) of ints
int* pa = a; // pa points to first int
pa++; // pa points to second int
int b[10][20]; // array(10) of arrays(20) of ints
int (*pb)[20] = b; // pb points to first array(20) of ints
pb++; // pb points to second array(20) of ints
如果要二维遍历,请使用手动索引:
int tab[W][H];
int* p = &tab[x+y*W]; // element (x,y)
p += 1; // one element forward (x+1)
p += W; // one column forward (y+1)