我理解C++中引用的概念,我理解它们在函数参数中使用时的作用,但我仍然对它们如何使用返回类型感到困惑.
例如,在参数中使用时,此代码:
int main (void) {
int foo = 42;
doit(foo);
}
void doit (int& value) {
value = 24;
}
Run Code Online (Sandbox Code Playgroud)
类似于这段代码:
int main (void) {
int foo = 42;
doit(&foo);
}
void doit (int* value) {
*value = 24;
}
Run Code Online (Sandbox Code Playgroud)
(知道该编译器会自动把一个星号前面值每次它的第一个代码示例中使用时间DOIT,但在后者,你也许就有您尝试使用的时候把星号在自己值)
因此,当用作参考时,下一个代码(使用返回类型中的引用)转换为什么?它是否返回指向int的指针?或者只是返回一个int?
int main (void) {
int* foo = /*insert useful place in memory*/;
foo = doit(foo);
}
int& doit (int* value) {
//insert useful code
}
Run Code Online (Sandbox Code Playgroud)