c语言中,inta=3,b=2,c=1,为什么赋值语句a=b=c+1错误了?

如题所述

赋值语句没有错,错的应该是变量的说明语句:inta=3应该在变量与类型说明符间加空格以示区别:
int
a=3,b=2,c=1;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-08-12
首先“==”的优先性要小于“<”,所以表达式“a==b<c”中先计算“b<c”,这时条件为真,所以“b<c”=1,“a==b<c”变成“a==1”,条件成立,所以表达式的值为真。
第2个回答  2020-07-28
a=b=c+1的意思是,首先计算出c+1等于2,c的值不变,然后执行b
=
(c
+
1),b变成2,然后执行a
=
(b
=
(c
+
1)),a的值变成2。
第3个回答  2020-05-28
没有错啊。
#include
int main()
{
int a=3, b=2, c=1;
a = b = c + 1;
printf("%d\n", a); // 输出:2
return 0;
}
相似回答