关于enum变量的取值范围
#include<iostream.h>
int main()
{
enum flag {x=1,y=2,z=4,e=8};
flag f=flag(99);
cout<<f<<endl;
return 0;
}
这段程序编译成功并且运行结果是:99
可是flag变量的取值范围不应该是:0-15么?搞不懂了:(
#include<iostream.h>
int main()
{
enum flag {x=1,y=2,z=4,e=8};
flag f=flag(99);
cout<<f<<endl;
return 0;
}
这段程序编译成功并且运行结果是:99
可是flag变量的取值范围不应该是:0-15么?搞不懂了:(
2006-09-10 16:51

2006-09-10 17:28
2楼,你没理解LZ的意思,书上也是这样说的,如果元素都是正,范围是[0:2^k-1]
按道理那是错误的。
至于原因,我也不知道,不过似乎不是2楼说的那样啊 
2006-09-10 17:52
2006-09-10 18:17
2006-09-10 19:44
2006-09-10 20:05

2006-09-10 23:55
2006-09-11 08:47
2006-09-11 08:49
是位域
表示分给他的位数

2006-09-11 09:09