C 如何定义常量变量

C 如何定义常量变量,c,typedef,C,Typedef,这是真的: p指向一个常量字符;或 p是一个常量,指向一个字符 请解释原因 typedef char* ptr; const ptr p; 后一行相当于 typedef char* ptr; const ptr p; i、 e.p是指向char的const指针。typedef为类型引入了一个新名称,它不是文本替换。首先,让我们暂时将typedef从等式中去掉 const char*p和char const*p都声明p为指向const数据的非常量指针;您可以指定p指向不同的对象,但

这是真的:

  • p
    指向一个常量字符;或
  • p
    是一个常量,指向一个字符
请解释原因

  typedef char* ptr;
  const ptr p;
后一行相当于

typedef char* ptr;
const ptr p;

i、 e.
p
是指向
char
const
指针。
typedef
为类型引入了一个新名称,它不是文本替换。

首先,让我们暂时将typedef从等式中去掉

const char*p
char const*p
都声明
p
为指向const数据的非常量指针;您可以指定
p
指向不同的对象,但不能修改所指向的对象

char*const p
p
声明为指向非常量数据的常量指针;您不能将
p
更改为指向其他对象,但可以修改
p
指向的对象

const char*const p
char const*const p
都将
p
声明为指向const数据的常量指针。这应该是不言自明的


typedef
有点不直观
ptr
char*
的同义词,因此
const ptr
充当
char*const
const
限定符应用于指针类型,而不是
char
类型

你可以测试一下。很好的例子说明了
typedef
#define
之间的区别,那么,对于这个非常基本的问题,你的C语言书给出了什么答案?
char * const p;