可能重复:
C comma operator
我遇到了一行我无法理解的代码。我记得在某个地方看到类似的东西。
int x,y,z;
x=(y=2,z=2*y,z+4);
我知道分配给x的值是8.有人能解释一下为什么吗?
答案 0 :(得分:4)
这相当于:
y = 2; // y == 2
z = 2 * y; // z == 4
x = z + 4; // x == 8
逗号运算符的操作数从左到右进行计算,结果是右操作数的值。
答案 1 :(得分:0)
逗号运算符分隔先前的值,并返回逗号中的最后一项作为结果,例如
a = b,c
将c的值赋给a。这里的括号基本上没什么,顺便说一句
所以你有两个赋值,然后是一个语句,其结果被返回并分配给x