c++ 在变量中存储引用

ffx8fchx  于 2022-12-15  发布在  其他
关注(0)|答案(1)|浏览(149)

我是C++新手,假设我有以下代码:

vector<int> vec; 
vec.push_back(5); 
int x = vec.at(0);

根据我的理解,x现在表示对向量中的值的引用,如果是这样,那么为什么如果我有x = 7,向量中的值仍然是5?
我试着在网站上搜索相关的帖子,但没有看到任何回答这个问题的帖子。

kpbwa7wx

kpbwa7wx1#

int x声明了一个整数。它不是一个引用。在你的代码中,向量中的值被复制了一份。
如果你想要一个引用,那么你需要声明x作为对int的引用:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> v{42};
    int& x = v.at(0);
    x = 5;
    std::cout << v.at(0);
}

为了进一步阅读,我建议您选择一个book和cppreference可以非常推荐https://en.cppreference.com/w/cpp/language/reference

相关问题