之间是否有任何细微差别
const int& value = 12;
和
const int value = 12;
编译时?怎么样?
答案 0 :(得分:1)
int value = 12;
这里'价值'是价值变量。
其中是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;
两个表达式都相同(对于简单的非指针数据类型)。向here学习 我们看到引用最常见的地方是函数参数或返回值。
带参考变量的const :
创建了一个临时文件,将const
引用绑定到它是合法的,但将其绑定到非const
引用是非法的。
就像:
const int& reference_to_const_int = int(20); //LEGAL
int& reference_to_const_int = int(20); //ILLEGAL
const
引用延长了临时的生命,这就是为什么这样做的原因。这只是语言规则。 (我从here了解到)
答案 1 :(得分:0)
第一个是指定了数字的const引用,而第二个是指定了数字的const值。在使用方面,没有区别,因为“价值”的用户都不能修改 编译器显然以不同的方式处理引用,因为引用通常是其声明的类型的某个对象的别名,在这种情况下,没有变量名的数字被赋给引用。
答案 2 :(得分:-1)
请参阅this question的解释。
所以你可以写这样的代码:
void f( const string & s ) {
}
( "foobar" );
等
看起来我因为给出这样一个不完整的答案而被投票。但这个问题基本上与我所链接的问题重复。
有更详细的信息可以描述这个问题的不同之处。