#include<stdio.h> main() { int a=21 ,b=11; printf("%d\n",--a+b,--b+a); } 10

为何输出结果为30?... 为何输出结果为30? 展开
 我来答
睡不着想你了
2011-09-10 · TA获得超过524个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:296万
展开全部
像这种输出的话我们一般以最后一个与前面的%d对应,而为什么结果输出是30呢,我给你分析下: 首先 --a+b 在这里虽然没有输出结果,但它影响了a的值,因为--a使得a自身减少了1,也就是 a=20, 第二个输出就是我们要输出的那个结果了 --b+a 中 b先自减1 得 b=10 ,而a在前面已经减为 20 了,所以最后结果是 --b+a=20+10=30.
wcjfcl
2011-09-10
知道答主
回答量:47
采纳率:0%
帮助的人:12.3万
展开全部
printf后面是一个逗号运算 --a+b,--b+a ,逗号运算的结果为最后那个的结果,前面那个--a+b对a进行了减1运算,当算--b+a的时候,先对b减1,此时的b=10,由于刚才a进行了减1运算,此时a=20;结果为30
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-09-10
展开全部
参数顺序一般是从右到左的
也就是先计算,--b+a,然后计算,--b+a,这时候a=20b=10所以结果为30
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式