C++ 新手,学习是为了乐趣。我仍在尝试理解引用和取消引用语法,所以如果您正在阅读本文,请用心并请帮助解释(如果可以的话)。一般来说,我理解=& foo返回对象的引用foo。并且引用 by&foo应该能够像指针一样显示它所引用的对象的地址。所以这可以赎回 foo 的地址:
//EXAMPLE 1 - works as expected?
void useFooRef(int &foo) {
cout << "using foo @ " << &foo << endl; //using foo @ 0x16eebb4e8
//no warning here!
}
int foo = 1;
int main() {
useFooRef(foo);
return (0);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果foo是我传递的函数,则将其作为指针接收并提取其地址似乎很好;尽管如此,我读到通过引用传递以避免传递空指针更安全。但如果我这样做,我会收到编译器警告......
//EXAMPLE 2
void useFooPtr(int (*foo)()) {
cout << "using foo @ " << &foo << endl; //using foo @ 0x16fb634c8
//no warning here!
};
void useFooRef(int …Run Code Online (Sandbox Code Playgroud) c++ ×1