您的位置:首页 > 编程语言 > C语言/C++

C语言难点专题——enum, struct 和 Union

2010-01-24 10:57 387 查看
C语言常用的几个数据结构, 做一个小总结, 方便查阅:

一: enum

enum没有任何神奇的地方,仅仅是让某些整数值变得有意义, 比如说, 电源开,用0表示,电源关,用1表示,

那么我们可以定义一个变量open, 和close, 表示电源的开和关。





void testEnum()
{
	enum MyEnum{first = 1, second, third};
	enum MyEnum typeA = 2;//枚举值,枚举范围中的一
	int N = typeA;
	switch(typeA)
	{
	case first:
		printf("当前取值为: %d", N);
		break;
	case second:
		printf("当前取值为: %d", N);
		break;
	case third:
		printf("当前取值为: %d", N);
		break;
	}
}


在我看来,枚举值应该可以有多个值可选,比如typeA = sencond, third两个值,但似乎暂时没有看到有人这样用,

需要再斟酌一下这个问题。



从枚举值引用的关系可以看出,enum列举出的任何变量,都不允许重复定义:



enum MyEnum{first = 1, second, third};
enum MyEnumA{first = 1, second, third}; //上面引用了first,后面允许再出现类似的枚举定义。




二: struct

声明了一个abc的结构。

struct abc{

int score;

};







定义结构(需要带上struct):



struct abc a;//实质上是声明 + 初始化



初始化一个结构:



struct abc a = {14};



a = {10}; //wrong 注意不能被两次初始化



当const修饰时:



const struct abc a;

a.score = 10; //不容许再次赋值





三: union

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: