1 指针常量和常量指针(只要把握自右向左的原则就能读懂)
1)type name;我们一般这样称呼它:name为type类型的变量(百科中:变量是一段有名字的连续存储空间。在源代码中通过定义变量来申请并命名这样的存储空间,并通过变量的名字来使用这段存储空间。 变量是程序中数据的临时存放场所)。这样声明的作用是在内存中申请到了一块内存,大小为type类型占用的大小。并且这块内存的地址标号为name。我们也可以先这样理解name代表的是这块内存地址。type是对这块地址处内存内容的翻译。我们知道了内存地址,知道了翻译成为的类型。
int a;a为int类型的变量,也可以翻译成,a代表的这块内存地址,这块内存地址处的内容翻译为int类型。
2)type * name,指针,我们从右自左,标号为name的内存地址处的内容翻译为一个指针,且指针指向的内存地址处的内容翻译为type类型
int * p;p是一个指针,且指向的内存地址处的内容翻译为int类型
3)const type name;自右向左,name为一块内存的标号,这块内存的内容翻译为是type为类型,且内存处的内容为const不可更改
const int a;a 代表的内存地址,内存的内容翻译为int类型,其内容且为const
有了以上的理解我们继续
4)常量指针
const int * p, 标号为p的内存处的内容翻译为一个指针,指针指向的内存处的内容理解为int 类型,且内容为const常量不可更改,也就是指向int类型的常量指。
5)指针常量
int * const p,标为p的内存处的内容不可更改,且内存处的内容翻译为指针,这个指针指向的内容为int类型。
(完全为个人理解)