引用,其實不可以改變指向

今天跟幾位同學討論了一點小問題,最後談到指針和引用的區別……最後,談到引用永遠指向初始化它的對象。。。問題就從這裏提出。按我的理解,引用是可以改變指向的(說明:這是錯誤的思維)。

int main(int argc, char *argv[])    
{    
	int a = 10, b = 20;
	int &p = a;
	p = b;
	printf("a = %d b = %d p = %d\n", a, b, p);
 
	return 0;    
}


並不是說,p = b之後,p就指向了b,而是,將b的值賦給了a。我差一點就“成功”的愚弄了羣裏的同學。其實,p還是指向a的。事實就是這樣。


可以驗證改變a和b的值之後p的改變,結果改變a,p值改變,但是改變b值,p值並不改變


雖然引用不可以改變指向,但是可以改變初始化對象的內容。對引用的操作直接反應到所指向的對象

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