#include<iostream>
int main()
{
//情况一,报错
const int a = 1;
int & b1 = a;
const int & b2 = a;
//情况二,没有报错
const int& c=1;
int d=c;
}
或者你这样理解也🆗,a是不能改的,b1指向a,b1是int&,能修改,这样就让编译器难做了,所以这是有矛盾的!!
所以b1的初始化就错了!!
b2不能改,a也是不能改,b2的初始化就没毛病!!
然后d的初始化也只是普通int的复制,没毛病
要想解决第6行的报错,要么把b1声明为const,保证对b1的操作不影响a,要么就不要把a声明为const