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

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


1. 指针常量(Pointer to Constant)

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

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

代码示例

图片

总结

指针可以指向不同的地址。

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


    2. 常量指针(Constant Pointer)

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

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

    代码示例

    图片

    总结

    指针的指向不能改变。

    可以通过指针修改指向的内容。


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

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

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

      代码示例

      图片

      总结

      指针的指向不能改变。

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


        总结对比

        类型指针指向指向的内容代码示例
        指针常量可以改变不能修改const int *p;
        常量指针不能改变可以修改int *const p;
        指针常量+常量指针不能改变不能修改const int *const p;

        记忆口诀

        • 指针常量:内容不变,指针可变。

        • 常量指针:指针不变,内容可变。

        • 两者结合:指针和内容都不变。

        评论
        添加红包

        请填写红包祝福语或标题

        红包个数最小为10个

        红包金额最低5元

        当前余额3.43前往充值 >
        需支付:10.00
        成就一亿技术人!
        领取后你会自动成为博主和红包主的粉丝 规则
        hope_wisdom
        发出的红包
        实付
        使用余额支付
        点击重新获取
        扫码支付
        钱包余额 0

        抵扣说明:

        1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
        2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

        余额充值