C语言中 a=b,c 和a=(b,c) 的值分别是多少

2024-12-16 20:19:52
推荐回答(3个)
回答1:

逗号运算符的优先级是最低的,在第一个表达式中,先把b赋值给a,然后a与c逗号运算返回c当然没有任何变量接收这个返回值,如果 d=(a=b,c) 这样d的值就和c的值一样了,所以在a=b,c;之后a和b的值一样
在第二个表达式中,逗号表达式用括号括起来了,所以先计算逗号运算,结果为最右边的值,所以括号后的结果就为c的值,这时a和c的值相等

回答2:

如果:
int a=1,b=2,c=3;
那么
a=b,c 的结果是 a=2,b=2,c=3
a=(b,c) 的结果是 a=3,b=2,c=3
用括号将 b,c括起来的话,逗号就成了运算符,那么整个括号就会取最后面的值,此时也就是取c的值

回答3:

第一个相当于
a=b;
c;
第二个相当于
a=b;
a=c;