demo_3_8


  1 枚举类型
  2 enum sex
  3 {
  4     //枚举的可能取值 - 常量s
  5     male = 2,//给枚举常量赋初值ss
  6     female = 4,
  7     secret = 8
  8 };
  9 
 10 enum color
 11 {
 12     red,
 13     green,
 14     blue,s
 15 };
 16 int main()
 17 {
 18     //枚举类型的定义
 19     //enum sex s=male;
 20     //只能拿枚举常量给枚举变量赋值,才不会出现类型的差异s
 21     //senum color c = blue;
 22     printf("%d %d %d\n", red, green, blue);
 23     printf("%d %d %d\n", male, female, secret);
 24     system("pause");
 25     return 0;
 26 }
 27 
 28 #define red 0
 29 #define green 1
 30 #define blue 2
 31 int main()
 32 {
 33     enum color c = 2;//errors
 34     int color = red;
 35     system("pause");
 36     return 0;
 37 }
 38 
 39 
 40 联合 - 联合体 - 共用体 - 共用同一块空间
 41 联合体类型的声明
 42 union un
 43 {
 44     char c;
 45     int i;
 46 };
 47 int main()
 48 {
 49     union un u;
 50     printf("%d\n", sizeof(u));//4个字节
 51     printf("%p\n", &(u.c));
 52     printf("%p\n", &(u.i));
 53     printf("%p\n", &(u));
 54     system("pause");
 55     return 0;
 56 }
 57 
 58 计算当前机器是大端存储模式还是小端存储模式
 59 int check_sys()
 60 {
 61     int a = 1;
 62     //返回表示小端,返回0表示大端
 63     return *(char*)&a;
 64 }
 65 int main()
 66 {
 67     //int a = 0x11223344;
 68     //低地址---->高地址 - 大端存储模式
 69     //高地址---->低地址 - 小端存储模式
 70     //讨论一个数据,放在内存中的存放的字节序
 71     //大小端字节序问题
 72     int a = 1;
 73     int ret = check_sys();
 74     if (1 == *(char*)&a)
 75     {
 76         printf("小端\n");
 77     }
 78     else{
 79         printf("大端\n");
 80     }
 81     system("pause");
 82     return 0;
 83 }
 84 
 85 int check_sys()
 86 {
 87     //匿名联合体类型的名字可以省略且用一次就不再创建了
 88     union un
 89     {
 90         char c;
 91         int i;
 92     }u;//创建联合体的变量u
 93     u.i = 1;
 94     //返回1表示小端
 95     //返回0表示大端
 96     return u.c;
 97 }
 98 
 99 //计算枚举类型的大小
100 enum sex
101 {
102     male,
103     female,
104     secret
105 };
106 int main()
107 {
108     enum sex s ;
109     printf("%d\n", sizeof(s));//取的是整型的值
110     system("pause");
111     return 0;
112 }
113 
114 union un
115 {
116     int a;//4个字节
117     char arr[5];//5个字节
118 };
119 int main()
120 {
121     union un u;
122     printf("%d\n", sizeof(u));
123     system("pause");
124     return 0;
125 }