typedef char* ptr;
const ptr p;
Run Code Online (Sandbox Code Playgroud)
这是真的:
p指向一个恒定的角色; 要么p 是一个常数并指向一个角色. 请解释原因
typedef char* ptr;
const ptr p;
Run Code Online (Sandbox Code Playgroud)
后一行相当于
char * const p;
Run Code Online (Sandbox Code Playgroud)
ie p是const指针char.在typedef一个类型引入了一个新的名字,它不是一个文本替换.
首先,让我们暂时取出等式中的typedef.
const char *p并且char const *p都声明p为const数据的非const指针; 你可以指定指向不同的东西,但你不能修改被指向的东西.p
char * const p声明为非const数据p的const指针; 你不能改变指向不同的对象,但你可以修改指向的东西.pp
const char * const p并且char const * const p都声明p为const数据的const指针.这应该是相当不言自明的.
这typedef有点不直观.ptr是一个同义词char *,所以const ptr充当char * const; 所述const限定词被施加到指针类型,而不是char类型.