【C语言】自定义类型之枚举、联合

一.枚举

一.枚举的定义:一系列命名的整形常量。枚举的例子有,一个星期里每一天的名称,钱币的币值等。
例1:

	enum day {mon,tue,wed,thu,fir,sta,sun};//枚举中,从0开始定义,即mon=0,sun=6;
	enum day qq=sun; //相当于定义了一个整型变量qq,初始化为6;

例2:

enum color {red=1,green=4,purple=7};//也可以给特定的整型值.

注意:枚举中的dollar,quarter等符号只是一个整数值的名字,不是字符串。试图将money作为字符串输出是无效的。
如果要输出字符串,可以尝试switch()语句

switch(qq) {
  case mon: printf("penny");
    break;
  case tue: printf("nickel");
    break;
  case wed: printf("dime");
    break;
  case dollar: printf("dollar");
    bresk;
    default: break;
  }

二.联合(union)

union,中文名“联合体、共用体”,联合体中成员共用同一块空间。
例:

	union stu {
		char i;
		int x;
	}y;
	y.x = 0x11223344;
	y.i = 0x55;
	printf("%p\n", &y.i);
	printf("%p\n", &y.x);
	printf("%d\n", sizeof(y));
	printf("%x", y.x);

在这里插入图片描述
分析:

  • 联合体内成员共用同一块空间,首地址相同
  • 联合体大小至少为最大成员类型大小
  • 从上述程序,可看出改变某一成员,其他成员也会改变。
  • 此机器为小端(高位放高地址)
发布了53 篇原创文章 · 获赞 49 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43550839/article/details/99305090