以下这行代码的含义是什么? 为什么0作为r-value而不是变量名也可以被接受? 这个声明语句中const
关键词的意义是什么?
const int &x = 0;
以下这行代码的含义是什么? 为什么0作为r-value而不是变量名也可以被接受? 这个声明语句中const
关键词的意义是什么?
const int &x = 0;
非常量引用不能指向字面值。你不能将字面值绑定到非常量引用上(因为修改字面值的值没有意义),只有左值可以绑定到非常量引用上。但是,你可以将字面值绑定到const引用上。
“const”很重要。在这种情况下,会为此目的创建一个临时变量,通常会创建在堆栈上。
x
指向数据段中的某个区域,就像字符串常量一样工作。如果x
指向堆栈,引用可能会过早失效。例如,如果你将引用作为指向某些静态变量的指针传递,并离开该方法。此外,如果每次调用方法都会创建一个新的“临时变量”,那么我认为我们不需要使用const
。我认为const
是必要的,因为内存区域在函数调用之间被重用。 - JojOatXGME