int (*p)[3]指向由整型数据组成的数组的指针
2017-10-29 08:18
225 查看
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)
的地址分配情况:
int (*p)
在一维数组和二维数组注意:
二维数组:
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];//[b]不等于a[4]的4,不合法[/b]
int (*p)[4];//[b]等于a[4]的4,合法
int a[4] = { 5, 6, 7, 8 };[/b]
原因:int (*p)
是数组指针,表示x行n列(x是不确定数)的数组的指针,也就是说:表示行指针,所指一行有n个元素。
int (*p)
与一维数组运用:
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
的区别:
文章链接:http://blog.csdn.net/chen1083376511/article/details/78386419
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)
的地址分配情况:
int (*p)
在一维数组和二维数组注意:
二维数组:
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];//[b]不等于a[4]的4,不合法[/b]
int (*p)[4];//[b]等于a[4]的4,合法
int a[4] = { 5, 6, 7, 8 };[/b]
原因:int (*p)
是数组指针,表示x行n列(x是不确定数)的数组的指针,也就是说:表示行指针,所指一行有n个元素。
int (*p)
与一维数组运用:
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
的区别:
文章链接:http://blog.csdn.net/chen1083376511/article/details/78386419
相关文章推荐
- int (*p)[3]指向由整型数据组成的数组的指针
- int (*p)[3]指向由整型数据组成的数组的指针
- int (*p)[3]指向由整型数据组成的数组的指针
- int (*p)[3]指向由整型数据组成的数组的指针
- int (*p)[3]指向由整型数据组成的数组的指针
- int (*p)[3]指向由整型数据组成的数组的指针
- int (*p)[3]指向由整型数据组成的数组的指针
- int (*p)[3]指向由整型数据组成的数组的指针
- int (*p)[3]指向由整型数据组成的数组的指针
- int (*p)[3]指向由整型数据组成的数组的指针
- int (*p)[3]指向由整型数据组成的数组的指针
- int (*p)[3]指向由整型数据组成的数组的指针
- int (*p)[3]指向由整型数据组成的数组的指针
- int (*p)[3]指向由整型数据组成的数组的指针
- int (*p)[3]指向由整型数据组成的数组的指针
- 指向几个元素组成的一位数组指针的指针变量
- 编写函数int stat(int a[],int n,int c[][2])。a指向的数组中保存了由n个1位整数组成的数列(n为偶数)。函数从前至后依次将a数组中每两个相邻元素拼成一个不超过2位的
- 建立一个数组,内存放5个学生的数据(学号、成绩),用指针指向数组首元素,输出1、3、5学生的数据
- 返回整型数据的指针int *p
- 返回整型数据的指针int *p