phw*_*hwd 3 c++ cout comma-operator
我正在阅读Bjarne Stroustrup的编程:使用C++的原理和实践
在第2章的练习部分中,它讨论了在编译hello_world程序时查看输入错误的各种方法
#include "std_lib_facilities.h"
int main() //C++ programs start by executing the function main
{
cout << "Hello, World!\n", // output "Hello, World!"
keep_window_open(); // wait for a character to be entered
return 0;
}
Run Code Online (Sandbox Code Playgroud)
特别是本节要求:
想想你在程序中输入的错误至少还有五个(例如忘记
keep_window_open(),在键入单词时保持Caps Lock键,或者输入逗号而不是分号)并尝试每个错误,看看当你尝试时会发生什么编译并运行这些版本.
对于该cout行,您可以看到有一个逗号而不是分号.
这编译并运行(对我来说).是否做出了假设(如在javascript问题中:为什么使用分号?)语句已被终止?
因为当我尝试keep_terminal_open();编译时通知我分号排除.
tem*_*def 11
C++中的逗号运算符可以如下使用:
a, b;
Run Code Online (Sandbox Code Playgroud)
它意味着"做a,忽视结果,然后做b." 你可以像这样链接在一起:
a, b, c, (etc.), n;
Run Code Online (Sandbox Code Playgroud)
一般来说,这不是好的风格.逗号运算符很少在实践中使用,因为它令人困惑.有几次它合法有用通常会出现for循环:
for (int a = 0, b = 0; a < 100; a++, b++) {
/* ... */
}
Run Code Online (Sandbox Code Playgroud)
在这里,我们在for循环的最后部分使用逗号运算符来表示"增加a和" b.
要回答你的问题,是的,你之后应该有一个分号cout.使用逗号运算符在技术上也可以正常工作,但它不够优雅,可能会让人感到困惑.