c++ - () 运算符的返回值

标签 c++

<分区>

我方法中的最后一行应该是

return methodName(xxx,xxx);

但是我把它当作

return (xxx,xxx);

方法返回类型是bool,我是在调试问题的时候才注意到这个错字的。没想到return (xxx,xxx);可以编译。它具体做了什么?

最佳答案

Return value of () operator

这不是 () 运算符的调用。 () 运算符的语法需要被调用的函数或变量的标识符。如果没有标识符,表达式周围的括号将用于对子表达式进行分组,并且可能会更改执行操作的顺序。例如:1 - (2 - 3) 将后两个操作数分组,结果不同于1 - 2 - 3。这是一个括号调用函数的示例:1 - cos(2 - 3)

在你的例子中没有兄弟表达式所以括号不会改变任何东西的顺序并且表达式等同于

return xxx,xxx;

这是逗号运算符的调用,类似于:

xxx;
return xxx;

只要 xxx 可以隐式转换为函数的返回类型,这就是格式正确的。

关于c++ - () 运算符的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43654847/

相关文章:

C++ 预处理器在类关键字之后和类名之前定义

c++ - 如何在 Visual Studio 中使用默认的 C++ 字符串构造函数?

c++ - 使用 C++ 和 Jsoncpp 解析 youtube 数据

c++ - 数字 n^n 的前 k 位和后 k 位

c++ - 使用字符串和流头文件和函数将 c++ 代码转换为 arduino

c++ - int 数组但索引是字符?

c++ - 带字符的矩阵

如果旋转是特定字符,C++ 插入符号

c++ - 纳秒到毫秒 - 快速除以 1000000

c++ - 除了 XCode,如何在 OS X 上正确设置 googleTest