int a=1,b=-1; printf("%d\n",(a--,b++));

inta=1,b=-1;printf("%d\n",(a--,b++));的输出为什么是-1呢?有点没看明白(a--,b++)这个括号是什么作用啊?... int a=1,b=-1;
printf("%d\n",(a--,b++));
的输出为什么是-1 呢? 有点没看明白(a--,b++) 这个括号是什么作用啊?
展开
 我来答
kaixingui2012
推荐于2017-10-13 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6311万
展开全部
(a--,b++) 这里括号表示 括号中的是表达式运算,只会返回一个值
(a--,b++) 是逗号运算,先运算a--,然后运算b++,返回的是b原来的值,之后b会再自增1,所以输出为-1,然后b变为0,a也变为0
haiyangfenghuo
2014-10-24 · TA获得超过2439个赞
知道大有可为答主
回答量:2388
采纳率:0%
帮助的人:791万
展开全部
逗号表达式取用的是后者的结果,这里取用的是b的值,只不过这里输出的是b++在++运算之前的值,这个是后++的用法,先取值再加加。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
酷酷的小淘气
2018-10-01
知道答主
回答量:1
采纳率:0%
帮助的人:813
展开全部
逗号运算符的算法是 取逗号右边的式子的结果作为运算结果(1,2...,n)结果为n
所以输出(a--,b++)就是输出 b++这个结果
b++就是赋值后加1,但是c语言直接赋值就输出结果了
简单地说就是先输出了,他还没运算呢
所以是-1呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式