typedef 是 C 语言的关键字,用于声明基本数据类型的别名
如: typedef int a;
则声明了一个 int 类型的别名 a,这个 a 不再是一个变量,而是 int 的别名,可以用 a 来代替 int 来声明其他整形变量,如: a name; 就是声明了一个整形变量 name
类型别名和类型名字是等价的,类型名字能出现的地方就能使用类型别名
但是下面一种情况要注意:
typedef char *pstr; // pstr 是 char* 的别名
const pstr cstr = 0; // cstr 是指向 char 的常量指针,并且把指针初始化
const pstr *ps; // ps 是一个指针,他的对象是指向 char 的常量指针
但是如果写成下面的声明语句,把 pstr 换成 char*,
const char* cstr = 0;
那么意思就和前面的不一样了, 因为此时的 cstr 是一个 const char* 类型,和前面的 cstr 指向 char 的常量指针不同了