我了解 C++ 中引用的概念,并且了解它们在函数参数中使用时的作用,但我仍然对它们如何处理返回类型感到非常困惑。
例如,在参数中使用时,此代码:
int main (void) {
int foo = 42;
doit(foo);
}
void doit (int& value) {
value = 24;
}
类似于此代码:
int main (void) {
int foo = 42;
doit(&foo);
}
void doit (int* value) {
*value = 24;
}
(知道每次在doit的第一个代码示例中使用 value 时,编译器都会自动在value前面加上一个星号,但在后者中,每次尝试使用value时都必须自己加上星号)
那么当用作参考时,下一个代码(在返回类型中使用参考)转换为什么?它是否返回一个指向 int 的指针?或者它只会返回一个int?
int main (void) {
int* foo = /*insert useful place in memory*/;
foo = doit(foo);
}
int& doit (int* value) {
//insert useful code
}