C语言的enum类型不是真正的枚举,可以赋予枚举里面的值,也可以赋其他值。
//C语言
#include<stdio.h>
enum WEEK{
Mon,Tue,Wen
};
int main(){
enum WEEK a = Tue;
enum WEEK b = 100;
printf("%d, %d", a, b);
}
C++中的enum只能赋予枚举里面的值,赋予其他值编译报错
//C++语言
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
using namespace std;
enum SEASON{Spr, Sum, Autu, Win};
int main(){
SEASON s = Spr;
SEASON p = 100; //编译报错
}
且enum里的值若为赋值,则第一个值默认为0,后面值依次加1,若enum里的值赋予了值,后面未赋值,则后面从前一值开始依次加1。