int (*p)[3]指向由整型数据组成的数组的指针
2017-10-29 08:18
344 查看
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 *p
- Chapter9——建立一个对象数组,内放5个学生的数据(学号,成绩),设立一个函数max,用指向对象的指针做函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。
- 【4.17】建立一个对象数组,内放6个学生的数据(学号、成绩),用指针指向数组首元素,输出第2,4,6个学生的数剧。
- 建立一个对象数组,内放5个学生的数据(学号,成绩),用指向对象的指针做函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。
- 指向几个元素组成的一位数组指针的指针变量