问题描述
|
当我读
---引用不是指针,它是对象本身,引用是一个实体,是另一个对象的别名。
---引用永远不能代表NULL
---参考变量允许两个变量名称寻址相同的内存位置:
---以后不能再引用其他对象
---引用不是变量,因为变量仅由对象的声明引入。对象是存储区域,在C ++中,引用不会(有必要)占用任何存储空间。
现在执行下面的代码行将变量整数转换为常量整数
const Array& ref = integers
而且我读了这个
也表示您可以更改引用对象的状态。
请提出/说明。
解决方法
不,它不会转换
integers
。现在,您仅拥有integers
的别名,因此无法更改它。您仍然可以通过原始名称更改integers
:
int i = 0;
int const& i_ref = i;
i = 5;
cout << i_ref; // outputs 5
上面的说明还显示了如何更改裁判的状态。
,您不能更改const引用的状态。除此之外,您提到的所有内容都是真实的。
因此,例如:
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