我遇到了下面的代码,输出为'2',我不熟悉枚举和引用,有人可以帮我理解为什么输出是'2',谢谢!
#include<iostream.h>
enum bix
{
a=1, b, c
};
int main()
{
int x = c;
int &y = x;
int &z = x;
y = b;
cout<< z--;
return 0;
}
答案 0 :(得分:1)
如果您没有为枚举器指定值,则其值比前一个值多一个,如果它是第一个,则为零。所以普查员是
a=1, b=2, c=3
引用是变量的别名;对引用执行某些操作与对其引用的变量执行操作完全相同。 y
和z
是x
的别名,因此使用它们的代码仅相当于使用x
的相同代码:
int x = 3; // c is 3
x = 2; // y is x, b is 2
cout << x--; // z is x; print the value (2) then decrement.