【c语言 优先级与结合性 高分悬赏】 main() {int n=1;printf(“%d %d %d\n”,n,++n,n--);}等详情见下

main(){intn=1;printf(“%d%d%d\n”,n,++n,n--);}A.111B.122C.123D.121可我在VC6里运行了一下,答案是221.为... main()
{int n=1;
printf(“%d %d %d\n”,n,++n,n--);
}
A.1 1 1
B.1 2 2
C.1 2 3
D.1 2 1
可我在VC6里运行了一下,答案是2 2 1.为什么呀?

类似的还有
以下程序的输出结果是____。
main()
{ int n=1;
printf("%d %d %d\n",n,n++,n--);
}
A.1 1 1
B.1 0 1
C.1 1 0
D.1 2 1
我运行了一下是1 1 1
答案是B。
为什么呀?
谢谢哦。
请给出详细的解答,我是菜鸟。谢谢
展开
 我来答
xc望心闯天下
2015-01-09 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:172
采纳率:0%
帮助的人:70.9万
展开全部
第一题答案A,第二题答案B

在printf中,是从左边开始计算的,所以第一题是先n--,再++n,最后n,第二题一个道理
更多追问追答
追问
先从左边开始?不是应该先算n,再n++吗?
追答
说错了,从右边开始的,我用的Linux下面gcc编译器,结果是符合正确答案的,这跟编译器有关,是编译器自己处理的
匿名用户
2015-01-09
展开全部
++i 和 i++,在单独使用时,就是 i=i+1。 而 a = ++i,相当于 i=i+1; a = i; 而 a = i++,相当于 a = i; i=i+1

第一题:先执行++n 此时n=2, 所以输出 2,2,1
第二题:a=n++相当于a=n n=n++ 所以输出1,1,1
更多追问追答
追问
第一题为什么先执行 ++n呀?
第二题 n=n++后,在输出n--的时候,n的值不是变成了2 吗?
谢谢哦
追答
因为++n的是3个式子里优先级最高的 
第二题是这样的:
printf("%d %d %d\n",n,n++,n--);// 相当于 printf("%d %d %d\n",n,n,n);; 再 n=n+1,n=n-1;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式