欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

int (*p)[3]指向由整型数据组成的数组的指针

程序员文章站 2024-01-01 17:11:46
...

int (*p)[]和二维数组使用

int map[2][3] = { { 10, 20, 30 }, { 40, 50, 60 } };
	int(*p)[3] = map;
	p++;//指向map[1][0]~map[1][2]的数组段的地址
	cout <<"**p(因为前面p++)是map[1][0]的内容值:"<< **p << endl;//map[1][0]
	cout <<"*p是map[1][0]的地址值:"<< *p << endl;
	cout << "*p+1是map[1][1]的地址值:" << *p + 1 << endl;
	cout << "*(*p + 1)是"<<*(*p + 1) << endl;//因为前面p++,所以一直指向第二个数组段,这里指第二个数组段的第二个元素
	

打印结果:

int (*p)[3]指向由整型数据组成的数组的指针

int (*p)[n]的地址分配情况:

int (*p)[3]指向由整型数据组成的数组的指针

int (*p)[n]在一维数组和二维数组注意:

二维数组:

int map[2][3] = { { 10, 20, 30 }, { 40, 50, 60 } };
int(*p)[1] = map;//小于map[2]的2,不合法

int(*p)[2] = map;//等于map[2]的2,合法

int (*p)[3]=map;//大于map[2]的2,合法

*************************************************

一维数组:

int(*p)[3];//不等于a[4]的4,不合法

int (*p)[5];//不等于a[4]的4,不合法

int (*p)[4];//等于a[4]的4,合法
int a[4] = { 5, 6, 7, 8 };

原因:int (*p)[n]是数组指针,表示x行n列(x是不确定数)的数组的指针,也就是说:表示行指针,所指一行有n个元素。

int (*p)[n]与一维数组运用:

int(*p)[4];
	int a[4] = { 5,66, 123, 589 };
	p = &a;
	cout << "p的值:" << p << endl; //注意,p不等于p[0]   
	cout << "p[0]是a的地址:" << p[0] << "  a的地址:" << &a << endl;
	cout << "a[0]的内容:" << *(p[0]) <<endl;
	cout << "a[1]的内容:" << *(p[0]+1) << endl;

打印结果:

int (*p)[3]指向由整型数据组成的数组的指针

关于与int *p[n]的区别:

文章链接:http://blog.csdn.net/chen1083376511/article/details/78386419

相关标签: 指针

上一篇:

下一篇: