c++中 int a[5]={1,2,3,4,5},i;int *p=a;p+=2;for(i=0;i==0;i++) cout<<*(p+2); 怎么去读程序?

我对指针一无所知!... 我对指针一无所知! 展开
 我来答
ddc_2012
2012-05-26 · 超过13用户采纳过TA的回答
知道答主
回答量:80
采纳率:100%
帮助的人:40.1万
展开全部
int a[5]={1,2,3,4,5},i //定义int数组a -> 5个连续的int存储空间首地址,按顺序值为1,2,3,4,5
;int *p=a;//定义int指针,并初始化值为a,指向数组首地址
p+=2;//指针按int类型方式向下偏移2位,指向从a[0]->a[2],值从1->3
for(i=0;i==0;i++) //for循环i初值为0(循环入口),循环判断为i==0(每次循环前),i++为循环增量(每次循环后)
cout<<*(p+2); //向cout流输出*(p+2)的值,默认为std终端,p+2同上,指向a[4],*(p+2)为指向地址值为5。该循环一次后中断
zzlbupa
2012-05-26
知道答主
回答量:23
采纳率:0%
帮助的人:18.9万
展开全部
你这个程序不全吧?没有说明程序要解决的问题啊?先在数组中赋初值,用指针p指向a[0],指针自加2,即p指向a[2],接下来有一个循环,i赋初值0,然后i恒等于0?程序有问题不?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b920438
2012-05-26
知道答主
回答量:15
采纳率:0%
帮助的人:17万
展开全部
定义了一个a数组,p指针指向数组a的首地址,p+=2使P指向数组a下标为2中的内容,for循环依次取出p指针指向的内容,而循环的条件是i==0,说只运行一次,*(p+2)是取出p+2地址中的内容,则输出5,a的下标为4
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-05-26
展开全部
int *p=a; //定义一个int型指针,并将数组a的首地址(准确地应该是元素a[0]的地址)赋值给p
p+=2;//指针p向后移动两个单位长度(即2个int字节长度),这时指向a[2]的地址
for循环实际就执行一次
cout<<*(p+2); //输出p+2指向的int型数值,即a[4]的值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式