// 书上原代码
typedef char *pstring;
const pstring cstr = 0;
const pstring *ps;
个人理解是:
第一条代码: 定义pstring 类型指向char类型,而不是char* 等价于pstring
类型:pstring -> char
第二条代码: 定义了常量cstr,该变量是pstring类型的常量
变量名:cstr->空
类型:pstring -> char
第三条代码:定义了指向pstring类型常量的指针ps,而且没有初始化。
// 现在让代码串起来
int main() {
typedef char* pstring; // *pstring 是char的别名
char a = 'a';
const pstring cstr = &a; // csrt 是 pstring 类型的变量,pstring 类型需要指向char类型
const pstring* ps = &cstr; // 定义了指向pstring类型变量的指针ps,
std::cout << *cstr << std::endl;
std::cout << **ps << std::endl;
a = 'b';
std::cout << *cstr << std::endl;
std::cout << **ps << std::endl;
return 0;
}
值:cstr的地址->a的地址->'a'
变量名:ps->cstr->a
类型:* -> pstring -> char