两种定义类型别名的方法:typedef和using。
typedef int mint;
using nint = int;
有类型别名时,解释变量类型需小心。直接类型别名替换会导致错误。
typedef int *mint; // mint是 int*的别名
int a = 1;
const mint pa = &a;
const int *pb = &a; // pa和pb类型并不相同
对于上面的语句,pa的定义如果按照别名展开,将解释为pb的类型。实际上pa是一个指向int型数据的常量指针,即pa本身是一个常量,所指对象为int型。而pb是一个指向常量对象的指针。