使用 GCC 4.8.1 (MinGW) 编译命令:g++ -o test.exe test.cpp
测试.cpp:
#include <iostream>
int a = 1, b = 2;
void F()
{
int &r = a;
std::cout << r;
r = b;
std::cout << r;
}
int main ( int, char** )
{
F();
F();
return 0;
}
预期输出为:1212,但实际输出为:1222
r
当被定义为指针时,它按预期工作。
void F()
{
int *r = &a;
std::cout << *r;
r = &b;
std::cout << *r;
}
有人知道“帐篷的钥匙”在哪里吗?