以下程序运行后的输出结果是
main()
{
int a=0,b=0,c=0;
c=(a+=a-=5),(a=b,b+3);
printf("%d,%d,%d\n",a,b,c);
}
我用程序输出的是0,0,-10。哪位大神可以帮我详细解释一下,尤其是c的值在逗号表达式中,不应该取右边的吗,为什么还是左边的-10呢?
麻烦问一下,这个不是逗号表达式吗?第一个括号和第二个括号不用分号隔开吗?
追答是逗号运算符,而且是两个逗号运算符的嵌套。只不过你对逗号运算符并没有掌握,所以理解错了。你加的两个括号,加不加都可以,并无什么不同,加了也是白加,没有什么用。
如果你想将逗号运算符运算的最终结果赋给c,不是你写的这样的,而是
c=(a+=a-=5,a=b,b+3);
这样才是将逗号运算符运算的最终结果赋给c。