2013-04-17 53 views
1

爲什麼引用不能在C++中重新初始化,而指針可以重新初始化?爲什麼引用不能在C++中重新初始化?

int x=5; 
int y=6; 
int *p1; 
p1 = &x; 
p1 = &y; //re-initializing the pointer but same can not be done with references 
int &r1 =x;//can be initialized only once 
+0

查看相關問題http://stackoverflow.com/questions/1305055/reference-initialization-in-c – user1929959

+0

非常簡短的回答:因爲如果他們在哪裏,他們將有完全重複的指針功能(可變重定向) –

回答

1

沒有明顯的語法。您不能使用正常的=語法;它將該值設置爲引用的基礎指針。也許你可以想出這樣的語法:

&my_reference = new_value; 

但是,這是一種奇怪的和尷尬。

+0

這是不可能的以任何形式。 '&variable'總是一個右值,而右值不能是賦值的左操作數。 – Nbr44

+0

@ Nbr44我認爲你的意思是右值,因爲名稱左值源於它通常位於任務的左側。 – Agentlien

+0

Ooopsies,確實是右值!謝謝 ! – Nbr44

相關問題