类型别名:是一个名字,是某种类型的同义词。它能让复杂的类型名字变得简单明了,易于理解和使用。
typedef关键字:就是常见的用来申明类型别名。类型别名是和类型的名字等价的,如:
typedef double wages;
别名声明:新标准规定,使用using关键字也可以来定义类型的别名。
using SI = Sales_item;
类型别名是和类型的名字等价的,如:
wages hourly; // 等价于double hourly;
SI item; //等价于 Sales_item item;
注意:
当涉及指针、常量的类型别名时,如下:
typedef int *pint;
int i=10;
const pint ok;
不能进行简单的替换,如将
const pint ok;
替换成:
const int *ok;
这是错误的!!!! ,因为const是对给定类型的修饰,pint实际上是对int型的指针,所以const修饰pint,就是指向int型的常量指针,即:
int *const ok; // 等价于 const pint ok;
所以,它不能对ok的地址进行修改,但可以对ok所指的对象进行修改。