一、结构体(struct)
struct text
{
int n;
long l;
double d;
};
二、共用体(union)
union text
{
int int_val;
long long_val;
double double_val;
};
//结构体(struct)表示一个包含多个数据类型的数据块(block)
//共用体和结构体声明方式相近
//共用体(union)只能表示其包含类型中的单种情形
三、枚举(enum)
enum text{first,second,third};
//枚举类型定义一系列符号常量,并使用底层类型标记每个符号常量;
//默认的枚举底层类型为int,若要修改则使用:
enum class:short text{first,second,third};
//C++11强类型枚举声明,底层类型指定为short
//默认情况下枚举量从0开始被依次连续赋值,这些值也可以显式指定:
enum text{first,second = 100,third};
//first = 0;second = 100;third = 101;
//可以向已有的枚举中添加新的枚举量;
enum text{zero,ten = 10};
text three;
three = text(3); //或text three=text(3);
但这种添加有值的上下限限制:
上限:大于枚举量最大值的2的幂减1;16-1=15;
下限:若枚举量最小值不小于0则为0;
若小于0则与最大值计算方法相同并添加负号;
//枚举量的值可以为负
//枚举量的值可以多个一致:
enum text{zero,null = 0,one,numero_uno = 1}; //前两者为0,后两者为1
//枚举量可以提升为int,但反之则不行:
int num = first; //enum转换为int
text text_num = 1; //不可行
由于枚举量可以被提升成int,所以可以进行整数运算(尽管没有这种必要);