()运算符的返回值

Return value of () operator

本文关键字:返回值 运算符      更新时间:2023-10-16

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

return methodName(xxx,xxx);

,但我把它当作

return (xxx,xxx);

方法返回类型为 bool ,我只在调试问题时才注意到错字。我没想到return (xxx,xxx);会编译。它到底做了什么?

返回((运算符的值

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

在您的情况下,没有同胞表达式

return xxx,xxx;

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

xxx;
return xxx;

只要xxx隐式转换到函数的返回类型。

COMMA ,操作员将返回提供列表中的最后一个元素。

return (a, b, c)等于 return c,即其返回的最后一个元素 c

The method return type is bool是这里的重要点。

C 的主要目的是评估表达式和

return (expression1,expression2);

您有两个表达式,即expression1expression2,对一个接一个地评估(逗号 - 只是一个分隔符 - 做到这一点(。

由于 expression2是最后的,所以返回了什么值。如果expression2返回非零值,则返回的值将为true,如果不是false


sidenote :尽管,可以重载,但从问题中很明显,您将其用作分隔符