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

C语言中 a=b,c 和a=(b,c) 的值分别是多少
最新回答
顾北凉城

2020-06-13 10:37:13

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

2022-01-09 03:44:45

如果:
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的值
爱情的模样

2023-01-05 19:34:41

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