我在理解此代码段中的行为时遇到了一些麻烦:
unsigned int i = 2;
const int &r = i;
std::cout << r << "\n";
i = 100;
std::cout << r << "\n";
第一个打印语句按我的预期给出了 2,但是当我更改引用变量的值时,它不会反映在引用中。第二个打印语句也给出 2,但我认为它应该给出 100?
如果我将变量i
转换为 typeint
而不是unsigned int
,它会按我的预期工作。这里发生了什么?