typedef char* ptr;
const ptr p;
这是真的:
p
指向一个常量字符;或者p
是一个常数,指向一个字符。
请说明原因
typedef char* ptr;
const ptr p;
后一行相当于
char * const p;
iep
是一个const
指向char
. 为typedef
类型引入了一个新名称,它不是文本替换。
首先,让我们暂时将 typedef 排除在等式之外。
const char *p
并且char const *p
都声明p
为指向 const 数据的非常量指针;您可以指定指向不同的事物,但不能修改所指向的事物。p
char * const p
声明p
为指向非 const数据的const指针;您不能更改为指向不同的对象,但您可以修改所指向的对象。p
p
const char * const p
并且char const * const p
都声明p
为指向const数据的const指针。这应该是不言自明的。
typedef
有点不直观。ptr
是 的同义词char *
,因此const ptr
充当char * const
; const
限定符应用于指针类型,而不是类型char
。