枚举变量做下标
使用这个技巧的时候,如果规范使用还是很方便的。如:
enum Direction {
In,
Out
};
int count[Out+1];
count[In]++; //用来计数清晰明白
优点
初始化数组大小时,枚举变量的补充会让数组大小随之扩充,避免相关联的数组出现溢出。固定的枚举变量会在使用的时候很方便。
缺点
使用不规范时(如他人代码中枚举变量修改并未告知)使用枚举变量中的元素去存取数组中的数据会导致数据存取混乱。建议非必要不使用枚举元素作为下标存取。
enum Num {
First,
Middle,
Last
};
int number[Last+1];
//访问中间的
number[Middle] = 20;
number[Last] = 30;
/*但是如果再加一个元素并且未告知*/
enum Num {
First,
Another,
Middle,
Last
};
int number[Last+1]; // 依旧可以正常使用
printf("%d",number[Middle]); //这个时候就出现了混乱