C语言enum 结构 联合类型的使用

C语言里定义了枚举,结构还有联合类型,后两者是一种构造类型。

枚举的声明如下:

enum 枚举类型名

{

    枚举值表;

};

枚举值表列出所有可用的值,也称为枚举元素。

“结构”是一种构造类型,它是由若干的“成员”组成,这些成员可以是基本类型,也可以是“构造”类型。它的一般形式如下:

struct 结构类型名

{

    成员表;

}

成员表由若干成员组成,每个成员都是该结构的组成部分。

联合跟结构很相似,但有个本质上的区别:结构中,每个成员都有各自的内存空间,结构变量的总长度是各个成员长度之和;而联合类型中,各成员共享一段内存空间,联合变量的长度等于成员中最长的长度。

联合的一般形式:

union 联合类型名

{

    成员表;

}

成员表有若干成员,这些成员共享同一段内存空间。以下是一段测试程序:

/**
*enum struct union测试
*
*/
int main(){
	//enum 的定义和使用
	enum {
	xiaofire, firethinks,ft=0,ft_2013//第一个元素初始值为0,此后依次递增,可以为元素赋值
	}me;
	//结构的定义和使用
	struct Date{
		int year,
		    month,
		    day;
	};
	Date dt,*dp;
	dt.year=2013;
	dp=&dt;
	printf("%d\n",dt.year);
	printf("%d\n",dp->year);
	//联合的定义和使用
	union Testu{
	 int i;
	 Date d;
	};
	Testu *p,u;
	p = &u;
	p ->d.year = 2013;
	printf("%d\t%d\t%d\t%d\t%d\n",xiaofire,firethinks,ft,ft_2013,p ->d.year );
	printf("%d\t%d\t%d\n",p->i,u.d,p->d.month);//p->d.month会得到一个垃圾数
	system("PAUSE");
	return 0;
}
程序的运行结果如下:
2013
2013
0       1       0       1       2013
2013    2013    -858993460
请按任意键继续. . .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值