Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
可能重复: C 逗号运算符
我遇到了一行我无法理解的代码。我记得在某处看到过类似的东西。
int x,y,z; x=(y=2,z=2*y,z+4);
我知道分配给 x 的值为 8。有人能解释一下为什么吗?
这相当于:
y = 2; // y == 2 z = 2 * y; // z == 4 x = z + 4; // x == 8
逗号运算符的操作数从左到右求值,结果是右操作数的值。
逗号运算符分隔前面的值,逗号中的最后一项作为结果返回,例如
a = b,c
将 c 的值赋给 a。这里的括号基本上什么都不做,顺便说一句
所以你有两个赋值,然后是一个语句,它的结果被返回并赋值给 x