返回运算符还是函数?

Laz*_*zer 22 c return function operators sizeof

我认为这太基础了,但这两种方法如何运作?

return true;   // 1
Run Code Online (Sandbox Code Playgroud)

return (true); // 2
Run Code Online (Sandbox Code Playgroud)

类似的产品sizeof,exit

我猜:

如果return是一个函数,1那就错了.

所以,返回应该是一个unary operator也可以在括号中使用...非常相似unary minus:-5而且-(5),两者都没关系.

它是什么 - 一元运算符?

sbi*_*sbi 29

return是一个关键字操纵控制流.在它的类似if,for等,它可以具有或不具有表达式(可以使用return;从一个返回void功能).当然,与所有表达式一样,允许使用额外的括号.(所以return (42);类似于int i = (4*10+2);,在两种情况下,括号都是多余的,但允许.)

sizeof是一个关键字,其为操作者,类似于new,delete,+,->, ::,等.

std::exit()是一个标识符,它表示一个函数 C标准库(其从未返回给调用者).


Wil*_*den 27

return只是一种语言/控制流构造.它当然不是一个函数,因为它在语法上是不可简化的,它也不是真正的运算符,因为它没有返回值.

  • @eSKay:控制流构造可以改变程序控制的流程.请参阅此处:http://en.wikipedia.org/wiki/Control_flow`return`也可以被视为语言构造,因为它实际上是语言语法的一部分.见这里:http://en.wikipedia.org/wiki/Language_construct (3认同)
  • 好点.如果`return`有一个'return`值,那么递归会有点太多;) (2认同)

AnT*_*AnT 17

return不是一个操作员,也不是一个功能.return是一个形成return语句的关键字,属于jump语句的类别.在这方面,有两种完全没有相似之处sizeofexit.

要求摆脱古代预标准版C(例如CRM C)()return存在的论点,但很快就被淘汰了,尽管可以不时地看到包含return多余论点的古怪习惯()今天.

  • @eSKay:`sizeof`是一个运营商.`exit`是一个stanadard库函数. (2认同)
  • @eSKay:`return`不会中止你的程序.`return`结束当前函数,因此`return`只会在`main`中结束程序.在那种情况下(在`main`中)你可以做任何一件事.但是我认为`main`中不需要`exit`,只需要一个简单的`return`来完成这项工作. (2认同)

Kil*_*nDS 7

返回的是一个控制流关键词,就像goto,break,continue,if,else...不要把它作为一个经营者,因为它不会改变它背后的价值.本()只是对表达式求值和计算表达式的结果将被提交至调用函数传递(如何取决于OM编译器实现).

它当然也没有功能,只要想一想:你将如何从回归中回归?