程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

再清楚不过了 | 指针常量和常量指针

balukai 2025-03-17 15:58:12 文章精选 2 ℃

在C/C++编程中,指针常量常量指针是两个容易混淆的概念。我们可以通过简单的比喻来理解它们。


1. 指针常量(Pointer to Constant)

定义:指针指向的内容是常量,不能通过指针修改内容,但指针本身可以指向其他地址。

通俗理解
想象你有一个遥控器(指针),它可以控制不同的电视(内存地址),但电视里的节目(内容)是固定的,你不能换台。不过,你可以用遥控器切换到其他电视(改变指针的指向)。

代码示例

总结

  • 指针可以指向不同的地址。不能通过指针修改指向的内容。

2. 常量指针(Constant Pointer)

定义:指针本身是常量,不能改变指针的指向,但可以通过指针修改指向的内容。

通俗理解
想象你有一个遥控器(指针),它只能控制一台固定的电视(内存地址),但你可以用遥控器换台(修改内容)。不过,你不能用这个遥控器去控制其他电视(不能改变指针的指向)。

代码示例

总结

  • 指针的指向不能改变。可以通过指针修改指向的内容。

3. 指针常量和常量指针的结合

定义:指针本身是常量,且指向的内容也是常量。

通俗理解
你的遥控器(指针)只能控制一台固定的电视(内存地址),而且电视里的节目(内容)也是固定的,既不能换台,也不能切换电视。

代码示例

总结

  • 指针的指向不能改变。不能通过指针修改指向的内容。

总结对比

类型

指针指向

指向的内容

代码示例

指针常量

可以改变

不能修改

const int *p;

常量指针

不能改变

可以修改

int *const p;

指针常量+常量指针

不能改变

不能修改

const int *const p;


记忆口诀

  • 指针常量:内容不变,指针可变。
  • 常量指针:指针不变,内容可变。
  • 两者结合:指针和内容都不变。
最近发表
标签列表