int& returnC() {
return c;
}
所以我的部分问题已被此处的另一个问题回答,但我仍然有点困惑。所以我知道这会返回一个引用而不是地址。但是这个定义有什么好处,你只是返回 c 为什么不把它定义为:
int returnC() {
return c;
}
如果它们都返回相同的变量,那么返回对 int 的引用而不只是 int 有什么好处?
如果我这样声明会发生什么:
int& returnC() {
return &c;
}
谢谢!
最佳答案
按值(value)返回
按值返回是使用起来最简单、最安全的返回类型。当按值返回一个值时,该值的拷贝将返回给调用者。 例如:
int returnC() {
return c;
}
通过引用返回
就像通过引用传递一样,通过引用返回的值必须是变量(您不能返回对文字或表达式的引用)。当通过引用返回一个变量时,对该变量的引用被传递回调用者。然后调用者可以使用这个引用来继续修改变量,这有时很有用。 通过引用返回也很快,这在返回结构和类时很有用。 例如:
// This struct holds an array of 25 integers
struct MyArrays
{
int ArrValue[25];
};
// Returns a reference to the nIndex element of rArray
int& Value(MyArrays &rArray, int nIndex)
{
return rArray.ArrValue[nIndex];
}
int main()
{
MyArrays objArray;
// Set the 10th element of objArray to the value 5
Value(objArray, 10) = 5;
cout << objArray.ArrValue[10] << endl;
return 0;
}
关于c++ - 返回对 int 的引用与在 C++ 函数中返回 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22215401/