C语言,这个程序的解释,值为什么是0,0,-10.怎么算的

main(){inta=0,b=0,c=0;c=(a+=a-=5),(a=b,b+3);printf("%d,%d,%d"\n,a,b,c);}... main()
{
int a=0,b=0,c=0;
c=(a+=a-=5),(a=b,b+3);
printf("%d,%d,%d"\n,a,b,c);

}
展开
 我来答
郝在益
2012-04-15 · TA获得超过2079个赞
知道小有建树答主
回答量:1496
采纳率:54%
帮助的人:628万
展开全部
首先你写的程序就有问题。
c=(a+=a-=5),(a=b,b+3);中间那个逗号应该是英文状态下的。c=(a+=a-=5),(a=b,b+3);
给你说说逗号的运算规则吧。逗号运算符是从左到右运算的。
所以,你的程序先运行c=(a+=a-=5),这个运算下来a=-10的,所以c=-10。之后就是运算(a=b,b+3);这里面再次从左到右运算,也就是先运算a=b,此时a=0,之后运算b+3,b的值一直没有变,所以b还是0.
所以最后的结果就是0,0,-10了。
满意请采纳!
longliangguang
2012-04-15 · TA获得超过477个赞
知道答主
回答量:448
采纳率:0%
帮助的人:289万
展开全部
a=b,b+3这个是a=b=0;b+3的值并没有赋给任何变量。。。
a-=5.....a=a-5.. ....-5
a+=-5;............ a=a+(-5)=-10;
所以c=-10;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
靳春花198844
2012-04-15
知道答主
回答量:11
采纳率:0%
帮助的人:6.6万
展开全部
(a=b,b+3); 这个括号有问题吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式