以下代码来自《Imperfect C++》
输出是0, 2222还是0, 0?
按C++标准,引用s所指向的不是l,而是一个临时变量,所以输出应该是0, 2222。
#include
<
stdio.h
>
int main()
{
long l = 2222;
short const &s = l;
l = 0;
printf("%ld, %d ", l, s);
return 0;
}
int main()
{
long l = 2222;
short const &s = l;
l = 0;
printf("%ld, %d ", l, s);
return 0;
}
输出是0, 2222还是0, 0?
按C++标准,引用s所指向的不是l,而是一个临时变量,所以输出应该是0, 2222。