#include<stdio.h> main() { int a=21 ,b=11; printf("%d\n",--a+b,--b+a); } 最后的输出结果为30 10
展开全部
凑个热闹啊也是初学者,输出语句中有个逗号运算符,逗号运算符直接要的是最后一个逗号后面的表达式的值(不管有多少逗号),程序先运行到--a+b,此时a=20。b=11.继续运行,--b+a.前缀--先自己-1然后再用。此时b=10.a=20.所以结果为30。希望被采纳。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在printf函数中,求值顺序是从右到左的,如 k=1;printf(''%d,%d\n'',k,k++) 运行结果是2,1
所以,,执行--b+a后,b=10,--a=20,所以输出结果是30
所以,,执行--b+a后,b=10,--a=20,所以输出结果是30
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好,像这种输出的话我们一般以最后一个与前面的%d对应,而为什么结果输出是30呢,我给你分析下: 首先 --a+b 在这里虽然没有输出结果,但它影响了a的值,因为--a使得a自身减少了1,也就是 a=20, 第二个输出就是我们要输出的那个结果了 --b+a 中 b先自减1 得 b=10 ,而a在前面已经减为 20 了,所以最后结果是 --b+a=20+10=30.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
printf("%d\n",--a+b,--b+a); }这句是个逗号运算,取后面的值.....但是前面的--a+b也是要运行的,运行了--a后a=20啦!!在运行后面的--b,b就等于10啦!!加起来就等于30.了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先看--a+b,a先自减1,因此a = 20
记着看--b+a,b先自减1,因此b = 10
然后在计算a + b = 20 + 10 = 30
所以程序可以理解为
--a;
--b;
printf("%d\n",a+b,b+a);
由于只输出一个a + b,因此输出结果为30
不懂可再追问
记着看--b+a,b先自减1,因此b = 10
然后在计算a + b = 20 + 10 = 30
所以程序可以理解为
--a;
--b;
printf("%d\n",a+b,b+a);
由于只输出一个a + b,因此输出结果为30
不懂可再追问
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询