引用是否会更改引用对象的状态

Does reference changes the state of the referent

本文关键字:引用 状态 对象 是否      更新时间:2023-10-16

正如我所读到的

---引用不是指针,它是对象本身,引用是作为另一个对象的别名的实体。

---引用永远不能表示空

---引用变量允许两个变量名称寻址相同的内存位置:

---以后不能让它指代不同的对象

---引用不是变量,因为变量仅由对象的声明引入。对象是一个存储区域,C++,引用(不一定)占用任何存储。

现在下面一行将变量整数转换为常量整数

const Array& ref = integers

此外,我读了这个还说您可以更改引用的状态。

请建议/澄清。

不,它不会转换integers 。您现在只有一个integers别名,您无法通过它进行更改。您仍可以通过原始名称更改integers

int i = 0;
int const& i_ref = i;
i = 5;
cout << i_ref; // outputs 5

上面的考官还展示了如何改变裁判的状态。

不能更改常量引用的状态。除此之外,你提到的一切都是真的。

所以例如:

const int& ref = integers;
ref = 5;

将无法编译。其中作为

int& ref = integers;
ref = 5;

将编译,它将以整数形式存储的值更改为 5。

此外,const 引用意味着您无法使用引用更改它引用的对象的值。您仍然可以使用原始变量名称对其进行修改。例如:

const int& ref = integers;
integers = 5;
std::cout<<ref<<", "<<integers<<std::endl;

是完全有效的,并将产生:

5, 5     
相关文章: