关于枚举的几个疑问
疑问一
enum num{zero, null = 0, one, numero = 1};//zero和null 都为0,one和numero都为1num size;size = (num)0;//如何确定size的值此时为zero还是null/*枚举量的取值范围的定义然如下:首先找出上限,找到大于这个最大值的、最小的2的幂,将它减去1,得到的便是取值范围的上限。然后找出下限,如果它不小于0,则取值范围的下限为0;否则,采用与找上限的方式相同的方式,但加上负号。请问让枚举量有这么大的取值范围有什么价值和意义,制定这个规则的目的或者说出发点是什么?*/
/*如何显示枚举量的整型值对应的字符或字符串值?*/
#include <stdio.h>int main(){ enum num{zero, null = 0, one, numero = 1};//zero和null 都为0,one和numero都为1 enum num n; n = (enum num)5; printf("%d %d %d %d\n", zero, null, one, numero); //0 1 1 1 //printf("%d %d %d %d\n", n.zero, null, one, numero); //error! return 0;}
[解决办法]
int main(){ enum num{zero, null = 0, one, numero = 1};//zero和null 都为0,one和numero都为1 num size; size = (num)0; //如何确定size的值此时为zero还是null if(size==zero){ cout<<"是zero"; } if(size==null){ cout<<"是null"; } // 结果既是zero也是null return 0;}