C++输出参数与返回值

In C++ Output Parameter vs Return Value

本文关键字:返回值 参数 输出 C++      更新时间:2023-10-16

输出参数和返回值之间有什么区别? 我到处找过,似乎找不到一个简单的定义。

  • 返回值是C++中明确定义的内容;例如,return x;中的x是返回值,而函数声明中的int是返回类型int myfunc()
  • 输出参数的一致性未在C++中定义。但是,有人会将其解释为以下任一情况:
    • const引用传递的函数参数,只要你在函数中实际修改它,否则为什么要叫它输出?在以下函数声明中x了一个示例:void myfunc(int& x);
    • 通过(不一定是const(指向非const的指针传递的函数参数,就像以下两个函数声明中的xvoid fun1(int * x)void fun2(int * const x);
      • 关于后一种情况,它允许将缺失的参数"编码"为nullptr默认值,如void fun3(int * x = nullptr)

第一个区别是美学:你最喜欢哪一个?

另一个是,前一个概念和语法可以帮助您传达函数返回值的消息,这在调用站点上也很清楚(而在调用站点,您可能不知道与参数对应的参数是否通过引用传递(。

函数在调用方站点产生"后果"的这两种方式之间存在一些差异。例如,您只能有一个返回值,而您可以拥有任意数量的参数。

在性能方面,编译器优化可以最大限度地减少性能差异,也许您(还(不必担心。