<分区>
我今天遇到了意想不到的(至少对我而言)C++ 行为,如以下片段所示:
#include <iostream>
int main()
{
std::cout << ("1", "2") << std::endl;
return 0;
}
输出:
2
这适用于括号之间的任意数量的字符串。在 visual studio 2010 编译器和键盘上进行了测试。
我想知道为什么首先要编译,这个“功能”有什么用?
<分区>
我今天遇到了意想不到的(至少对我而言)C++ 行为,如以下片段所示:
#include <iostream>
int main()
{
std::cout << ("1", "2") << std::endl;
return 0;
}
输出:
2
这适用于括号之间的任意数量的字符串。在 visual studio 2010 编译器和键盘上进行了测试。
我想知道为什么首先要编译,这个“功能”有什么用?
最佳答案
啊,这是逗号运算符。当您使用一个逗号和两个(或更多)表达式时,会发生所有表达式都被执行的情况,并且整个结果是最后一个表达式的结果。这就是为什么您因此得到“2”的原因。参见 here以获得更大的解释。
关于c++ - 括号之间的两个字符串在 C++ 中用逗号分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11899009/