c++指针数组和数组指针

指针数组和数组指针有什么区别,分别有什么用途,该怎么用?好乱啊... 指针数组和数组指针有什么区别,分别有什么用途,该怎么用?好乱啊 展开
 我来答
华仔桥
2012-06-03
知道答主
回答量:13
采纳率:0%
帮助的人:25万
展开全部
数组指针,用楼上的话就是指向数组的指针,操作指针就可以操作数组如下:
int a[3] = {1,2,3};
int *p = a;
printf("数组指针:%d\n", *(p+1));
// 打印的结果为2,原因是p初始化指向了数组a的首地址,即a[0]。*(p+1)即先将地址向后挪动一位即指向了a[1],再取地址里面的值,即取a[1]的值,故结果为2。

指针数组,保存指针的数组:
int a1[2] = {1,2};
int a2[3] = {1,2,3};
int a3[4] = {1,2,3,4};
int* pArray[3] = {a1, a2, a3};
printf("指针数组:%d\n",*(pArray[2]+3));
//打印结果为4,原因是每个数组的数组名就是指向该数组第一个元素的指针。而pArray是存了3个指针的数组,pArray[2]就是指针a3,a3+3就是指向了a3的第4个元素,所以pArray[2]+3指向了a3的第4个元素。*(pArray[2]+3))就是取地址里面的值,故为4
孤の漃113095a
2012-06-03 · TA获得超过135个赞
知道小有建树答主
回答量:305
采纳率:0%
帮助的人:153万
展开全部
指针数组 顾名思义 保存指针的数组 数组能保存整形 长整型 double float 对象 当然也可以保存指针 (虽然我从来没用过)。 数组指针 就是指向数组首地址的指针。 其实数组名就是数组指针 他指向的就是数组的首地址。。
追问
可以举个例子吗?我自己写了几个代码,还是不太懂,你看看:
int a[3]={5,6,7};
int * p_a[3];
p_a[3]=&a[0];
cout<<*p_a[3];
输出的结果不是5而是1244988,这又是为什么呢?
追答
第三句换成 p_a[3]=a; 你再试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式