结构
结构的声明
struct book {
char title[];
char author[];
float price
}
struct book Steve;
struct book life, *ptbook; //是一下声明的简化
struct book { char title[]; char author[]; float price }life;
2. 定义结构变量
struct book life = { "xxx xxx xxx"; "xxx xxx xxx"; 3.0 };
3.初始化结构
struct book *ptbook;
4.指向结构的指针
和数组不同,一个结构的名字不是该结构的地址
枚举类型
1. 枚举类型的目的是提高程序的可读性
enum spectrum {red, orange, yellow, green};
声明设置spectrum为标记名,从而允许把enum spectrum作为一个类型名使用。
enum spectrum color;
声明color为该类型的一个变量,括号中的标示符枚举了color变量可能的值。
color = blue;
if (color == yellow)
2.枚举列表中的常量默认为整数值,从0开始
enum levels {low = 100, medium = 500, high = 1000};
指定枚举列表中的值
typedef
1. 用typedef可以为某一类型创建指定的名字,与#define的不同之处在于:
(1)typedef给出的符号名称仅限于对类型,而不是对值
(2)typedef由编译器解释,而不是预处理器
typedef struct complex{
float real;
float imag
} COMPLEX;
也可以省略结构的标记
typedef struct{
float real;
float imag
} COMPLEX;
一些奇特的声明
int **ptr; //指向int的指针的指针