在前三课,你学到了传递的参数的值,参考函数,和地址。在本节中,我们将考虑返回值返回给调用者通过所有三个方法问题。
事实上,从一个函数的地址值,它的调用者返回值,或参考作品几乎完全相同的方式作为参数传递给一个函数是。所有的好处和缺点的每个方法都存在。两者之间的主要差别是,数据流的方向是相反的。然而,有一个更增添了几分复杂,因为在一个函数的局部变量超出范围的函数返回时,我们需要考虑这种效果在每个返回类型。
(作者注:这节课有一个有趣的课数,因为它最初是从7章略)
返回值
返回值是最简单和最安全的返回类型使用。一个值时,返回的值,该值的一个副本被返回给调用者。是按值传递的,你可以通过文字返回值(如5),变量(如X),或表达(如x + 1),这使得价值非常灵活的回报。
通过价值回归的另一个优点是,您可以返回变量(或表达式),涉及的局部变量在函数声明。因为变量的功能超出范围之前,评估,和副本的值返回给调用者,没有问题,当变量超出范围在函数的末尾。
int DoubleValue(int nX)
{
int nValue = nX * 2;
return nValue; // A copy of nValue will be returned here
} // nValue goes out of scope here
Return by value is the most appropriate when returning variables that were declared inside the function, or for returning function arguments that were passed by value. However, like pass by value, return by value is slow for structs and large classes.