逗号运算符如何在C ++中工作?
例如,如果我这样做:
a = b, c;
结局等于b还是c?
(是的,我知道这很容易测试-只是在此处记录文档,以便别人快速找到答案。)
更新: 使用逗号运算符时,这个问题暴露了细微差别。只是记录一下:
a = b, c; // a is set to the value of b!
a = (b, c); // a is set to the value of c!
这个问题实际上是受代码输入错误的启发。打算是什么
a = b;
c = d;
转换成
a = b, // <- Note comma typo!
c = d;
a = b, c = d;
实际上执行的功能是否与预期的相同a = b; c = d;
?
b
和d
是使用(和修改)公共状态的函数求值,则直到时才定义执行顺序C++17
。