我正在读这个article关于左值和右值。我不太明白这段代码:
int x;
int& getRef ()
{
return x;
}
getRef() = 4;
首先,return x
是如何为您提供对 x
的引用的?不应该像 return addressof(x)
吗?
其次,getRef() = 4
到底做了什么?这应该是一项任务吗?我在这里不知所措。
最佳答案
虽然引用不是指针,但它们的行为通常很像指针,而且大多数使用引用的代码都可以改用指针来编写。指针更灵活、更强大、更容易混淆和危险,因此通常最好使用引用,除非您确实需要指针。同样的代码可以用这样的指针编写:
int x;
int* getPtr ()
{
return &x; // return pointer to x
}
*(getPtr()) = 4; // assign value to what the pointer points to
为了进一步阅读,这个 QA 有一些好东西:When to use references vs. pointers
关于c++ - 此代码如何使用整数为您提供引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57900811/