编译器在第 3 行说无效初始化 我想创建对i的引用,它告诉编译器有人想要更改i,我想这件事是随着新版本的编译器出现的,因为我在大多数书中都找到了这个代码。
int main(){
const int &i=10;
int &j=1;
cout<<j;
return 0;
}
这个:
int &j=1;
无效,因为您正在从常量值(由于显而易见的原因无法修改)创建非常量引用(这将允许您修改所指对象)。
改为这样做:
const int &j=1;
此外,声明的行i
没有意义。只需删除它。
int
除了在下一行的问题中缺少一个之外const &i=10;
,您正在创建一个不是的引用const
(即允许更改它所引用的内容)并且数字1
是一个常量。您会在以下代码中遇到同样的问题:
const int i = 1;
int &ri = i;
原因应该很明显。