<分区>
我方法中的最后一行应该是
return methodName(xxx,xxx);
但是我把它当作
return (xxx,xxx);
方法返回类型是bool,我是在调试问题的时候才注意到这个错字的。没想到return (xxx,xxx);
可以编译。它具体做了什么?
标签 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/