一、类型别名
类型别名是一个名字,它是某种类型的同义词。
类型别名有两种方法定义。传统的方法是使用typedef
typedef int DataType; // DataType是int的同义词
typedef struct SLinkList
{
DataType data;
struct SLinkList *next;
}SLinkList, *SLinkListPtr; // SLinkList是struct SLinkList的同义词
// SLinkListPtr是struct SLinkList*的同义词
新标准规定了一种新的方法,使用别名声明来定义类型的别名。
using SStack = struct SStack; // SStack是struct SStack的同义词
using SN = CStudent_Number; // SN是CStudent_Number的同义词
1.1 指针、常量和类型别名
我们在遇到使用类型别名的语句时,总会犯一个错误,就是将类型别名替换成它本来的样子来理解,这样会产生我们意想不到的结果。
typedef char* pString;
const pString str = 0; // str是一个指向char的常量指针(顶层const)
const pString *