方法一 用指向单个整型常量的指针p依次访问每个元素
int main() {int i, j;int a[2][3] = { 1,2,3,4,5,6 };int* p = &a[0][0];for (i = 0; i< 2; i++) {for (j = 0; j < 3; j++) {cout << left << setw(3) << *p;p++;}cout << endl;}return 0;
}
方法二 用指向一个数组的指针p访问每一行
int main() {int i, j;int a[2][3] = { 1,2,3,4,5,6 };int(* p )[3]; //一个数组指针,p指向第一行的一维数组p = a;for (i = 0; i < 2; i++) {for (j = 0; j < 3; j++) {cout << left << setw(3) << p[i][j];}cout << endl;}return 0;
}
看了一篇文章后 对指针数组和数组指针有了更好地理解。
运用 运算符优先级区别 ()>[]>*可知,
int(*p)[5] 是数组指针 ,是一个指向一维数组的指针,p+1指向下一个一维数组,
int *p[5] 是指针数组,是包含多个指针的数组,如 int*p[5]={"abd","bao"}是包含了两个指针的数组,两个元素都是指针,分别指向字符串“abd”和“bao”的首地址。
附上链接
http://t.csdnimg.cn/0FmhJ