共同体
#include <stdio.h>
int main() {
union Person{
char *name;
int age;
}per;
per.name;
per.age;
return 0;
}
联合体或共同体与结构体的区别:
1.联合体只能够存一个元素.里面有多少元素的声明只是表示这块空间能存这些类型的元素,结构体可以同时存在多个
2.联合体的字节总长的最大字节数元素的长度,结构体是最大元素的倍数.
枚举
枚举:
是一种数据类型,称为枚举类型,是构造类型的一种,里面存的都是有别名的整型常量
可以把多个整型常量以别名的形式封装成一个整体,便于别的变量识别并取值使用
特点:
1.枚举类型只能是int值,且不能直接用int常量,需要用别名(建议全部大写)
2.如果不设定值,那么默认第一个元素是0,以此类推.
3.同一个作用域内不能出现重复的元素.不同的枚举类型也不行.
注意:枚举一旦类型定义成功之后,里面的数据常量不能再更改.
#include <stdio.h>
int main() {
//定义:
enum Day{
MORNING,
NOON,
NIGHT,
};
//定义枚举变量并赋值
enum Day daystatus=MORNING;
printf("%d\n",daystatus);
//第二种赋值
daystatus=MORNING;
printf("%d\n",daystatus);
daystatus=NOON;
printf("%d\n",daystatus);
daystatus=NIGHT;
printf("%d\n",daystatus);
return 0;
}