c++ - 此代码如何使用整数为您提供引用?

标签 c++ reference

我正在读这个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/

相关文章:

c++ - 如果位于头文件中的 "heavy"函数没有标记为 'inline' ,那么它的代码被编译到哪里?

c++ - 无序映射相等功能 c++

c++ - 模板特化 VS 函数重载

c++ - 具有通用引用的成员函数模板不接受左值

c++ - 通过引用将对象传递给函数不会更改此对象

javascript - 如何删除或插入 Javascript 多维数组

c++ - Adobe 亚当和夏娃 (C++ ASL) : how to bind Eve variable so to get it updated inside C++ application?

c++ - 获取对 std::list 中最后两个元素的引用

c# - Unity3D 删除 MonoDevelop 中的项目引用

c++ - 在 C++ 的方法中使用引用并返回值?