【C++】数组指针与指针数组

先看示例:

 1 #include<iostream>
2 using namespace std;
3 void main()
4 {
5 int a[2][3]={{1,2,3},{4,5,6}};
6 int (*pa)[3]=a;
7 int i=0;
8 int *p=*pa;
9 for(i=0;i<6;i++){
10 cout<<*p<<" ";
11 p++;
12 }
13 cout<<endl;
14 cout<<**pa<<" "<<**(pa+1)<<endl;
15 cout<<*(*pa+1)<<endl;
16 }

vs2008结果如下:

1 2 3 4 5 6
1 4
2


分析:

int *prt[]=int *(prt[])这是一个数组,数组的元素是指针;int (*prt)[]这是一个指针(而且是两维指针),指向的是一个整型数组;

例中int (*pa)[3]=a的pa是一个两维指针,故临时变量int *p=*pa而不是int *p=pa;

 

该示例的示意图如下:

                *(*pa+1)

                     ↓

**pa      →  1 2 3

**(pa+1)→  4 5 6

原文链接: https://www.cnblogs.com/caixu/archive/2012/02/27/2370599.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    【C++】数组指针与指针数组

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/42709

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 下午7:27
下一篇 2023年2月8日 下午7:28

相关推荐