在C/C++编程中,指针常量和常量指针是两个容易混淆的概念。我们可以通过简单的比喻来理解它们。
1. 指针常量(Pointer to Constant)定义:指针指向的内容是常量,不能通过指针修改内容,但指针本身可以指向其他地址。
通俗理解:想象你有一个遥控器(指针),它可以控制不同的电视(内存地址),但电视里的节目(内容)是固定的,你不能换台。不过,你可以用遥控器切换到其他电视(改变指针的指向)。
代码示例:

总结:
指针可以指向不同的地址。不能通过指针修改指向的内容。2. 常量指针(Constant Pointer)定义:指针本身是常量,不能改变指针的指向,但可以通过指针修改指向的内容。
通俗理解:想象你有一个遥控器(指针),它只能控制一台固定的电视(内存地址),但你可以用遥控器换台(修改内容)。不过,你不能用这个遥控器去控制其他电视(不能改变指针的指向)。
代码示例:

总结:
指针的指向不能改变。可以通过指针修改指向的内容。3. 指针常量和常量指针的结合定义:指针本身是常量,且指向的内容也是常量。
通俗理解:你的遥控器(指针)只能控制一台固定的电视(内存地址),而且电视里的节目(内容)也是固定的,既不能换台,也不能切换电视。
代码示例:

总结:
指针的指向不能改变。不能通过指针修改指向的内容。总结对比类型
指针指向
指向的内容
代码示例
指针常量
可以改变
不能修改
const int *p;
常量指针
不能改变
可以修改
int *const p;
指针常量+常量指针
不能改变
不能修改
const int *const p;
记忆口诀指针常量:内容不变,指针可变。常量指针:指针不变,内容可变。两者结合:指针和内容都不变。