-1
我想了解C++引用變量。此鏈接似乎表示可以重新分配指針,而應在初始化時分配引用。 difference between pointer and reference。我有下面的代碼。我已經在debian系統上運行了它。輸出結果如下所示。輸出似乎表明,參考也可以重新分配。如果有人能夠澄清,那將是非常好的。重新分配C++引用變量
#include <iostream>
using namespace std;
int main()
{
int x = 5;
int y = 6;
int *p;
p = &x;
cout << "content of p " << *p << endl;
p = &y;
cout << "content of p " << *p << endl;
*p = 10;
cout << "content of p " << *p << endl;
/*A reference must be assigned at initialization*/
int &r = x;
cout << "content of r " << r << endl;
r = y;
cout << "content of r " << r << endl;
return 0;
}
輸出
content of p 5
content of p 6
content of p 10
content of r 5
content of r 10
引用不能被重新分配。如果你認爲它可以,那麼你的測試不夠徹底。 – juanchopanza
這裏'r = y;'與'x = y;'的作用相同。它不分配參考,它分配參考所指的東西。 – immibis
引用不能被重新分配意味着'&r'永遠不會改變。 'r'可以在引用非const的情況下改變。 – LogicStuff