下面程序段"int a=1,b=1;printf("%d,%d",(a++,--b),b-1);"的输出结果 15

请帮我解答的详细点吧谢谢谢谢为什么结果不是0;-1呢... 请帮我解答的详细点吧 谢谢谢谢
为什么结果不是0 ;-1呢
展开
 我来答
tanarri
2010-10-28 · TA获得超过1.1万个赞
知道大有可为答主
回答量:5123
采纳率:33%
帮助的人:8109万
展开全部
int a=1,b=1;printf("%d,%d",(a++,--b),b-1);
逗号表达式的值是最右一项的值
所以先输出b-1
b-1=0
然后输出--b,先自减,b=0,所以输出0
所以结果为
0,0
问号朵朵
2010-10-28 · TA获得超过3.4万个赞
知道小有建树答主
回答量:2383
采纳率:0%
帮助的人:667万
展开全部
结果:0,-1
(a++,--b)返回--b:=0

补充:是0或-1都有可能,不同的编译环境得到不同结果,
vc6结果为0,0
2005、2008为:0,-1
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kitlover
2010-10-28 · 超过38用户采纳过TA的回答
知道答主
回答量:159
采纳率:0%
帮助的人:106万
展开全部
printf是从右向左计算的,所以按照以下步骤:
1: b-1 =》0
2:(a++,--b) =》(1,0) =》0
所以最后的输出结果为: 0,0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
水水水还水水
2010-10-29
知道答主
回答量:10
采纳率:0%
帮助的人:4.5万
展开全部
printf是从右向左计算的,
1: b-1 =》0
2:(a++,--b) =》(1,0) =》0
所以最后的输出结果为: 0,0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sunmanpower
2010-10-28 · TA获得超过1158个赞
知道小有建树答主
回答量:353
采纳率:0%
帮助的人:258万
展开全部
是0,-1啊,我用vs2008编译的结果是0,-1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式