一、基础用法
- 法一:typedef 类型 类型别名;
- 法二:using 类型别名 = 类型;
二、类型别名指代复合类型
typedef char * pstring;
const pstring cstr = 0;
上面用类型别名pstring指代char *,即pstring是指向char的指针,故const修饰的是指针,也即cstr是指向char的常量指针。
若我们尝试把类型别名替换成它本来的样子,以理解语句的含义,则有:const char * cstr;,这样我们错误地认为const修饰的是char。
所以这种理解是错误的。声明语句中用到pstring时,其基本数据类型是指针,而用char *重写后,数据类型就变成了char,*成为了声明符的一部分。即改写后的结果是,const char成了基本数据类型,声明了一个指向const char的指针,而正确的结果是声明了一个指向char的常量指针。
小试牛刀
const pstring *ps;
ps是一个指针,它指向的对象是指向char的常量指针