若有以下定义:int a[]={1,2,3,4,5,6,7,8,9,10},*p=a; 则值为3的是( )A、p+=2;*(p++);B、p+=2;*++p;

C、p+=3;*p++;D、p+=2;++*p;... C、p+=3;*p++;D、p+=2;++*p; 展开
 我来答
其博涛0D
2013-05-26
知道答主
回答量:15
采纳率:0%
帮助的人:13.4万
展开全部
A
值为3的结果应该是*(p+2)
A: p+=2;*(p++) 表示*(p+2), 因为后自增预算,返回自增前的值,并且变量自身+1
B: p+=2; *(++p) 表示*(++(p+2)) == *(p+3)
C: p+=3;*p++ 表示*((p+3)++), 因为*p++等同于*(p++),所以得到的结果是:*(p+3)
D: p+=2;++*p 表示*(p+2)+1 = 4
绛喵
2012-09-24 · TA获得超过273个赞
知道小有建树答主
回答量:147
采纳率:0%
帮助的人:125万
展开全部
A 因为 p+=2 是 p=0+2 ,指的是数组中的第二个元素。而*(p++) 是p+1 ,*(p++)表示第三个元素的值。故选A。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
李丰鑫1
2012-09-24
知道答主
回答量:16
采纳率:0%
帮助的人:7.7万
展开全部
*(p+2)和a[2]都是3,你问这个题感觉是不太明白*和++的优先级问题,先说下++吧。假设a=1;b=a++;结果(b=2,a=2);b=++a,结果(b=1,a=2);至于优先级,就看++和*谁靠的p更近些了,谁进就先处理谁(感觉和中国社会挺像的~~~),所以答案是:B
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱吃机的战斗鸡
2012-09-24
知道答主
回答量:19
采纳率:0%
帮助的人:13.2万
展开全部
学A吧,a[0]=1,a[1]=2,a[2]=3,而p+=2;*(p++)就是先把P指向的地址后移两个单位,P初始化指向a数组首地址,后移两个单位后即 a[2]= 3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gui_happy
2012-09-24 · TA获得超过2091个赞
知道大有可为答主
回答量:4276
采纳率:42%
帮助的人:2949万
展开全部
A
P+=2 , P=P+2 相当于a[2] ,*(p++)相当于*(p+2) 即a[2]
*++p相当于*(++p)相当于a[3]

p+=3 ,p=p+3 相当于a[3] *p++相当于*(p++)

++*p相当于++(*p) 即++a[0] =2
不懂可以再追问
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(11)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式