const int&value = 12 和 const int value = 12 之间的差异;

difference between const int& value = 12 and const int value = 12;

本文关键字:const value int 之间      更新时间:2023-10-16

可能的重复:
const引用可以分配一个int?

之间有什么细微的区别吗

const int& value = 12;

const int value = 12;

编译时?怎样

int value = 12; 

这里的"value"是值变量。

其中是int&用于创建对其他变量的引用变量(别名)。像

int i;  
int& j=i;

j和i指的是相同的内存位置。it c++ concept.

但不能为内存位置创建引用变量。所以在我的想法中,下面的表达式是错误提示

int& i = 12;  `Will not compile even.`    

关于const

const关键字用于创建只读变量。一旦初始化,变量的值就无法更改。考虑以下代码:

const int x = 2;  // const var can be initialized, not modified thereafter
x = 10;           // error - cannot modify const variable

错误:错误:分配只读变量"x">

此外,Expression可以在类型的两侧使用const。

const int value = 12;
int const value = 12;

两个表达式是相同的(对于简单的非指针数据类型)。从这里学习我们看到引用最常见的地方是函数参数或返回值。

带有参考变量的常量

创建了一个临时的,将const引用绑定到它是合法的,但将它绑定到非const引用是非法的。

就像:

const int& reference_to_const_int = int(20);  //LEGAL
int& reference_to_const_int = int(20);  //ILLEGAL

const引用延长了临时的生命,这就是为什么它有效。这只是语言的规则。(我从这里学到的)

第一个是分配了一个数字的常量引用,而第二个则是分配了数字的常量左值。在用法方面,没有区别,因为"值"的用户不能修改两者
编译器显然会区别对待引用,因为引用通常是其声明类型的某个对象的别名,在这种情况下,不带变量名的数字会分配给引用。

请参阅此问题的解释。

所以你可以写这样的代码:

void f( const string & s ) {
}
( "foobar" );

等等。

看来我因为回答这么不完整而被否决了。但这个问题本质上是我所联系的问题的重复。

有更详细的信息来描述这个问题的区别。