如何输入定义常量变量

sou*_*912 4 c typedef

  typedef char* ptr;
  const ptr p;
Run Code Online (Sandbox Code Playgroud)

这是真的:

  • p指向一个恒定的角色; 要么
  • p 是一个常数并指向一个角色.

请解释原因

Dan*_*her 8

typedef char* ptr;
const ptr p;
Run Code Online (Sandbox Code Playgroud)

后一行相当于

char * const p;
Run Code Online (Sandbox Code Playgroud)

ie pconst指针char.在typedef一个类型引入了一个新的名字,它不是一个文本替换.


Joh*_*ode 5

首先,让我们暂时取出等式中的typedef.

const char *p并且char const *p都声明pconst数据的非const指针; 你可以指定指向不同的东西,但你不能修改被指向的东西.p

char * const p声明为非const数据pconst指针; 你不能改变指向不同的对象,但你可以修改指向的东西.pp

const char * const p并且char const * const p都声明pconst数据的const指针.这应该是相当不言自明的.

typedef有点不直观.ptr是一个同义词char *,所以const ptr充当char * const; 所述const限定词被施加到指针类型,而不是char类型.