C语言中逗号表达式的问题

2024-12-05 01:31:30
推荐回答(4个)
回答(1):

逗号表达式的运算级最低,比赋值运算符级别还低。
所以 y=(x=a+b),(b+c);
先算x=a+b=6,再y=x=6;而后面的b+c不影响x和y的值。
所以最终x,y的值都是6.
只不过 y=(x=a+b),(b+c);这整个式子的值是b+c=10而已。
如果是y=((x=a+b),(b+c)); 那么才结果是x=6,y=b+c=10

回答(2):

在c/c++中逗号表达式的运算结果是逗号之前的部分,逗号后面的你可以理解顺便做的工作
在你的代码中
y=(x=a+b),(b+c);
这一句中,运算顺序
(1).x=a+b得到x=6
(2)b+c
(3)y=x=a+b=6
所以结果自然就是y和x都等于6了

回答(3):

y=(x=a+b),(b+c);
包括一个赋值表达式,和一个算术表达式,y的值是6,整个表达式的值为10.
也就是说 y=((x=a+b),(b+c));时 y的值为10.
自己再试下咯。

回答(4):

因为在y=(x=a+b),(b+c);中有一个逗号,所以程序运行时不考虑逗号后的一部分。a+b的值赋给x。再把x的值赋给y。有程序知道它们的值都是6