C++的数组,多维数组,指针,指向数组的指针

实例总结如下:

int main()
{
	int a[3][2] = { 5,6,9,8,7,0 };
	int (*p)[2] = a;			//p指向a[0]{5,6}
	p = p + 1;					//p指向a[1]{9,8}

	cout << p << endl;			//p指向a[1]{9,8},结果为指向一维数组的指针。
	cout << *p << endl;			//*p即a[1]{9,8},结果为一维数组本身,自动转化为一维数组的地址。
	cout << **p << endl;		//**p即a[1][0] 9,结果为一维数组的首元素。
	cout << **(p+1) << endl;	//p+1指向a[2]{7,0},**(p+1)即a[2][0] 7,结果为一维数组的首元素。
	cout << *(*p + 1) << endl;	//*p指向a[1],*p+1指向a[1][1],*(*p + 1)即a[1][1] 8,结果为一维数组的第二个元素。
	system("pause");
}

运行结果如下:

posted @ 2017-03-31 21:29  why2cs  阅读(158)  评论(0编辑  收藏  举报