【C++】数组指针和指针数组
来源:互联网 发布:手机连不上网络数据 编辑:程序博客网 时间:2024/06/08 09:26
一,数组指针
数组指针:指向一个数组的指针,其本质上上一个指针变量,不过限制仅仅能指向数组。如下所示:
int (*p)[n];
解析:()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。官方点的描述是上述代码定义了一个指向包含有n个元素的数组的数组指针。
有数组a:int a[3][4]= {1,2,3,4,5,6,7,8,9,11,12,13};
int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。
p=a; //将该二维数组的首地址赋给p,也就是a[0]或&a[0][0]
p++; //该语句执行过后,也就是p=p+1;p跨过行a[0][]指向了行a[1][]
cout<<*(*q+1); //输出6
所以数组指针也称指向一维数组的指针,亦称行指针。
其实数组指针是比较好理解的。
二,指针数组
指针数组:数组的每一个元素都是指针。它是一个只包含指针元素的数组,它的元素可以指向相同类型的不同元素。
指针数组:int *p[n];
解析:[]优先级高,先与p结合成为一个数组,再由int*说明这是一个整型指针数组,它有n个指针类型的数组元素。这里执行p+1时,则p指向下一个数组元素,这样赋值是错误的:p=a;
如下;
int *p[3];int a1[4]={1,2,3,4};int a2[4]={5,16,7,8};int a3[4]={9,11,12,13};p[1]=a2;cout<<*(++p[1]); //输出为16
ps:感觉这个指针数组就是一个噱头,除了面试真是没啥用。
重点:优先级:
() > [] > * > ++
阅读全文
0 0
- 【c/c++】指针数组和数组指针
- c 数组 和 数组指针
- c++---数组和指针
- C 指针和数组
- C -- 数组和指针
- C++:数组和指针
- C 指针和数组
- C:数组和指针
- C:指针和数组
- 《C和指针》- 数组
- C指针和数组
- 指针数组和数组指针(C)
- 指针数组和数组指针(C)
- C指针数组和数组指针
- C语言指针数组和数组指针
- C语言指针数组和数组指针
- C语言指针数组和数组指针
- C语言指针数组和数组指针
- 关于shiro的 subject.getPrincipal()方法
- C++中char类型数组的长度问题
- Android开发之EditText 详解三个方法(addTextChangedListener监听用户输入状态)
- 1小时学会:最简单的iOS直播推流(八)h264/aac 软编码
- sinco.C自学笔记(printf的计算结合性问题)
- 【C++】数组指针和指针数组
- Autonomous driving application
- nullptr
- MVP模式二级购物车
- 【Java】3.Java性能监控工具 笔记(jps 、jstack、jmap,jstat,process explorer)
- 1小时学会:最简单的iOS直播推流(九)flv 编码与音视频时间戳同步
- 管理系统存储
- visual studio 2015 删除空行 ,缩进css
- 磁盘阵列