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 }