引用與指針的區別中有一點是,指針能夠更改指向而引用在初始化後就不能更改指向指針
對於下面,編譯器沒有報錯:blog
int b=100; int c=2000; int& name=b; cout<<name<<endl; name=c; cout<<name<<endl;
其實,這裏不是更改了引用name的指向(從b改成c)編譯器
實際上,name=c的意思是,使用c的值來更改name指向的變量的值,也就是b的值,實際上等價於b=c;並無更改name的指向編譯
從下面的結果能夠看到,b也被改成了2000class
int b=100; int c=2000; int& name=b; cout<<name<<endl; name=c; cout<<name<<endl; cout<<b<<endl;