行指针也可以用来遍历二维数组每个元素,但是不推荐使用这种方法,只是为了加深对行指针的理解:
代码如下:
#include <lontern.h>
int main()
{
int a[2][3] = {0};
int i = -1;
int count = 1;
while (++i < 2) {
int j = -1;
while (++j < 3) {
a[i][j] = count++;
}
}
int a_len = _countof(a) * _countof(a[0]);
//这里原本是int(*p_row)[3],以3个int作为间隔,指向每行的首地址。那么如果想实现1个int间隔,可不可以呢?,答案是可以的,需要强转为(int(*)[1])
int(*p_row)[1] = (int(*)[1])a;
while (a_len--) {
printf("int(*p_row)[1] %d \n", *p_row++[0]);
}
return 0;
}
输出结果:
int(*p_row)[1] 1
int(*p_row)[1] 2
int(*p_row)[1] 3
int(*p_row)[1] 4
int(*p_row)[1] 5
int(*p_row)[1] 6