逗号运算符如何在C++中工作?
例如,如果我这样做:
a = b, c;
Run Code Online (Sandbox Code Playgroud)
最终是否等于b或c?
(是的,我知道这很容易测试 - 只是在这里记录,以便有人快速找到答案.)
更新: 此问题在使用逗号运算符时暴露了细微差别.只是记录下来:
a = b, c; // a is set to the value of b!
a = (b, c); // a is set to the value of c!
Run Code Online (Sandbox Code Playgroud)
这个问题实际上是受到代码中的拼写错误的启发.打算做什么
a = b;
c = d;
Run Code Online (Sandbox Code Playgroud)
转换成
a = b, // <- Note comma typo!
c = d;
Run Code Online (Sandbox Code Playgroud) 我经常看到关于在C++中重载逗号运算符的问题(主要与重载本身无关,但是像序列点的概念一样),这让我想知道:
你什么时候应该重写逗号?它的实际用途有哪些例子?
我只是想不出任何我已经看到或需要的东西
foo, bar;
Run Code Online (Sandbox Code Playgroud)
在现实世界的代码中,所以我很好奇何时(如果有的话)实际使用它.
我看到了这段代码:
if (cond) {
perror("an error occurred"), exit(1);
}
Run Code Online (Sandbox Code Playgroud)
为什么要这么做?为什么不呢:
if (cond) {
perror("an error occurred");
exit(1);
}
Run Code Online (Sandbox Code Playgroud)