#include <iostream>
using namespace std;
int main ()
{
int x = 0;
int y = 1;
int& z = x;
z = x;
z = y;
cout << "\nx: " << x;
cout << "\ny: " << y;
cout << "\nz: " << z;
return 0;
}
**
编辑:
**
对于所有3种情况,此代码均返回1。难道这不是错误吗?
C++标准的8.5.3部分说:
最佳答案
不,在您的代码中,您没有更改z
引用的内容,而是在更改z
的内容(以及它引用的内容x
)。
您可以通过以下代码看到它:
x = 5;
cout << x;
cout << z;
x
和z
都将具有值5,因为z
仍然是对x
的引用。