C语言 一个枚举的问题

来源:百度知道 编辑:UC知道 时间:2024/05/14 01:52:53
#include<stdio.h>
#include<string.h>
#include <stdlib.h>

void main()
{
enum em {em1=3,em2=1,em3};
char *aa[]={"AA","BB","CC","DD"};
printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);

}
结果是DDBBCC 前面的DDBB我明白 可是最后一个为什么是CC????

你如果不设置初始值的话,在枚举中,后面的值是在前面的值的基础上加1,也就是em3 = 2,而不是像数组一样,默认为0.

enum em {em1=3,em2=1,em3};
默认em3=2,,
so aa[2]==CC