我正在阅读有关参考资料的 Wikipedia 页面。
它包含以下代码:
int& preinc(int& x)
{
return ++x; // "return x++;" would have been wrong
}
preinc(y) = 5; // same as ++y, y = 5
我确实尝试使用return x++;
而不是编译return ++x;
。正如预测的那样,这导致了以下错误:
错误:从“int”类型的临时变量中“int&”类型的非常量引用的初始化无效</p>
我不明白这个错误。我有一种模糊的直觉,即 x 的增量发生得太晚了(即,在 preinc 的函数调用结束之后)。但是,我不明白这是一个问题,因为变量 x 永远不会停止存在。欢迎任何解释。