typedef 与 using
为类型取别名有两种使用方法
typedef double wages; (wages 与 double 是同意)
typedef wages base, *p; (base 与 wages 是同意,故 base 是 double, p 与 wages * 同意,故 p 是 double)
using si = wages; (wages 与 si 是同意,故 si 是 double)
const
const 修饰的函数或是变量时,是告诉编译器,该属性会不变。这里只描述关于 类型名的替换问题。
typedef char * ptchar;
using puchar = char *;
const ptchar a = nullptr; (a 是一个指向空的常量指针)
const puchar b = nullptr; (b 是一个指向空的常量指针)
const char * c = nullptr; (c 是一个指向常量空的指针)
注意:
可以看到类型名替换之后 const 修饰的意思就发生了改变。当 const 修饰的是一个 类型别名 产生的对象时,那么const 就是修饰 该对象,而不是对象指向的内容。