1. 结构体
是由多种数据类型组合成的新类型
// 定义结构体类型:
struct Student {
char *name;
int age;
};
// 第一种:声明变量 + 赋值
struct Student stu4 = {"十6", 13};
// 第二种:先声明变量后赋值
struct Student stu1;
stu1.age = 2;
// 第三种: 定义结构体 + 声明变量 + 赋值
struct Student2 {
char *name;
int age;
} stu2 = {"十三", 13};
2. 枚举
由有限的同种数据类型组成的新类型
枚举里面实际存的都是整数,默认从0开始自增1,可以更改初始值
// C语言 定义枚举
enum ButtonStatus1 {
ButtonStatusNormal,
ButtonStatusDisable,
ButtonStatusHighLight
};
// OC 定义枚举 + 改变初始值
NS_ENUM(NSInteger, ButtonStatus2){
ButtonStatusNormal = 10,
ButtonStatusDisable,
ButtonStatusHighLight
};
// 定义变量 + 赋值
enum ButtonStatus1 sta1 = ButtonStatusNormal;
enum ButtonStatus2 sta2 = ButtonStatusDisable;
// 定义枚举 + 定义变量 + 赋值
enum ButtonStatus1 {
ButtonStatusNormal,
ButtonStatusDisable,
ButtonStatusHighLight
} status = ButtonStatusDisable;
3. 类型别名
用来给比较长的类型起别名,一般用于枚举和结构体
// 给已存在的结构体起别名
typedef struct Student Stu;
typedef enum ButtonStatus1 Status1;
// 定义结构体 + 起别名: Stu3
typedef struct Student3 {
char *name;
int age;
} Stu3;
// 定义枚举 + 起别名: Stu3
typedef enum ButtonStatus1 {
ButtonStatusNormal,
ButtonStatusDisable,
ButtonStatusHighLight
} Status1;
// 使用时 Stu 可以代替 struct Student,简洁很多呦
struct Student stu4 = {"十6", 13};
Stu stu4 = {"十6", 13};
// 使用时 Status1 可以代替 enum ButtonStatus1
enum ButtonStatus1 sta1 = ButtonStatusNormal;
Status1 sta1 = ButtonStatusNormal;