枚举
也是程序员自己创建的一种数据类型
枚举常量可以替代宏,可以代替常量,增加程序可读性
// 重要用法是用于switch语句
//enum Week{}
//{}内不能有变量,只能是常量,而且枚举常量只能是整数不能是浮点数
typedef enum{
MONDAY = 3,
TUESDAY ,
WEDNESDAY,
THURDAY,
FRIDAY,
SATURDAY,
SUNDAY,
}Week;
// MONDAY = 3 // 一种对应关系,不是赋值
联合
typedef union{
char ch[4];
int x;
}Data;
- 也是程序员自己创建的一种数据类型;可以节省内存空间,联合中的所有联合变量共用一块存储空间
计算内存:
大端存储(右到左)
小端存储(左到右)
结构体;
struct Example{//成员个数不限
int i;//成员变量
char ch;
double d;
};
struct Example s;//struct Example 是一个数据类型
s.i = 10;//点是一个成员运算符
s.ch = 'a';//结构体变量的成员,只能逐个操作,不能整体操作
p->i = 30;//通过指针对成员变量赋值时需要使用" -> "这个成员运算符
Exmple1 s2[3] = {
{10,'a',3.14},//每个变量有成员,所以都用{}括起来
{20,'b',2.678},
{30,'c',9.56875}
};
结构体做函数形参:
typedef struct{
char name[100];
BOOL gender;
int age;
}Person;
void setPerson(Person* p,char* name , BOOL gender,int age){
strcpy(p->name, name);
p->gender = gender;
p->age = age;
#ifdef DEBUG1
printf("调试:%s,%d,%d",p->name,p->gender,p->age);
printf("
");
#endif
}