const int&value = 12 和 const int value = 12 之间的差异;
difference between const int& value = 12 and const int value = 12;
可能的重复:
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" );
等等。
看来我因为回答这么不完整而被否决了。但这个问题本质上是我所联系的问题的重复。
有更详细的信息来描述这个问题的区别。
相关文章:
- C++/SDL "initial value of reference to a non-const must be an lvalue"
- 如何修复" State Error (active) E0513 a value of type "const wchar_t *" cannot be assigned to an entity o
- 为什么const rvalue合格的std ::可选:: value()返回const rvalue参考
- "Any value" 对于 'const std::string&' 参数
- 如何修复"initial value of reference to non-const must be an lvalue?"
- const int&value = 12 和 const int value = 12 之间的差异;
- 当整数变量用于在 c++ 中声明数组大小时,错误显示为"Expression must have a const value"
- JsonCpp:未定义的对"Json::Value::operator[](int) const"的引用
- const object&return value from a method, best practice
- is_const<const int&>::value 是假的 - 为什么?
- const T& value() const 是什么意思?
- 如何编写is_reference_const函数,使is_reference_const<const int&>::value'是图尔
- const value and RVO
- 为什么"int *find(const vector<int> &vec, int value)"会给我一个无效的转换错误?
- 当使用std::make_pair时,L-value指定const对象
- L-value在使用std::map时指定const对象
- 为什么 std::is_const<const int&>::value 的计算结果为 false?
- C++标准:类型"int"的矢量构造函数中的默认"const T& value"
- const或ref或const ref或value作为setter函数的参数
- 为什么"cups_option_t::name"和"::value"不是"const char*"?