求解C++常量左值引用爲什麼可以綁定一個右值

如題,正常情況下引用代表變量的一個別名,如:
int a = 1;
int &b = a; //ok(b是a的一個別名,兩者指向相同的內存地址)
int &c = 2;//error(不能將非常量左值引用綁定到右值2)
const int &d = 3;//ok(爲什麼常量左值引用卻可以綁定到右值3?)


求大神解答!

這樣理解會不會好一點:使用引用是爲了去改變被引用的變量: 在int &c = 2中,原意是想引用c去改變右值,而右值是一個常量,不能改變,所以錯誤了,如果右值是一個變量,就可以: 而這個const int &d = 3中,左值直接定義成了常變量,原意就是隻是想引用右值,而不想改變右值,所以右值可以直接用整數。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章