辨析常量指针、指针常量、常量引用、引用常量的区别

常量指针、指针常量的识别技巧:

const读作常量,*读作指针,按照顺序读。
​
const int * ptr; //const读作常量,*读作指针,按照顺序读作常量指针。
​
int const *ptr;  //const读作常量,*读作指针,按照顺序读作常量指针。
​
int * const ptr; //const读作常量,*读作指针,按照顺序读作指针常量。
  1. 常量指针(const pointer)

    • 常量指针是指其指向的对象是常量,不能通过该指针修改所指向的值,但可以修改指针本身指向的地址。

    • 示例:const int *ptr;int const *ptr;

    • 例如:const int *ptr = &a; 表示 ptr 是一个指向 int 类型常量的指针,不能通过 ptr 修改 *ptr 所指向的值,但可以通过其他途径修改 a 的值。

  2. 指针常量(pointer to const)

    • 指针常量是指该指针本身是常量,即指针一旦初始化后不能再指向其他地址,但可以通过该指针修改其指向对象的值。

    • 示例:int *const ptr;

    • 例如:int *const ptr = &a; 表示 ptr 是一个指向 int 类型的常量指针,不能改变 ptr 的指向,但可以通过 *ptr 修改 a 的值。

  3. 常量引用(const reference)

    • 常量引用是指通过引用绑定的变量不能被修改,但是引用本身不是常量,可以绑定不同的变量。

    • 示例:const int &ref = a;

    • 例如:const int &ref = a; 表示 ref 是对 a 的一个常量引用,不能通过 ref 修改 a 的值,但可以将 ref 绑定到其他 int 类型的常量或非常量。

  4. 引用常量(reference to const)

    • 引用常量是指引用本身是常量,一旦初始化后不能再绑定其他变量,但可以通过该引用修改所绑定变量的值。

    • 示例:int &const ref;(C++ 中不支持这种写法,引用本身不能是常量)

    • 例如:int &const ref = a; 这种写法在 C++ 中是不允许的,因为引用本身不能是常量,只能是常量引用。

总结:

  • 常量指针指针常量的主要区别在于一个是指针指向的值是常量,另一个是指针本身是常量。

  • 常量引用引用常量的区别在于一个是引用所绑定的值是常量,另一个是引用本身是常量(实际上,引用本身不能是常量,只能是常量引用)。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值