C/C++利用指针输出二维数组元素

方法一 用指向单个整型常量的指针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] 是指针数组,是包含多个指针的数组。

附上链接

http://t.csdnimg.cn/0FmhJ

你可能感兴趣的:(c++,c语言)