指针常量和常量指针的区别

1. 指针常量(Constant Pointer)

  • 定义: 顾名思义指针常量是一个指针,它本身是常量,指向的地址不能改变,但可以改变指针所指向的值,(速记:指针是常量)

  • 声明: 在 C 或 C++ 中,可以使用 const 关键字来声明指针常量。例如:

int a = 10;
int * const ptr = &a;
  • 行为: 在这个例子中,ptr 是一个指针常量。ptr 的值(即它指向的地址)不能被改变,但可以通过 ptr 修改 a 的值。例如:
*ptr = 20;  // 修改 a 的值
int b = 20;
// ptr = &b;  // 错误:不能改变 ptr 的值

2. 常量指针(Pointer to Constant)

  • 定义: 常量指针是一个指向常量的指针,指针所指向的值是常量,不能改变,但可以改变指针的值(即它指向的地址)。(速记:常量的指针)

  • 声明: 在 C 或 C++ 中,可以使用 const 关键字来声明常量指针。例如:

int a = 10;
const int *ptr = &a;
  • 行为: 在这个例子中,ptr 是一个常量指针。ptr 的值(即它指向的地址)可以改变,但不能通过 ptr 修改 value 的值。例如:
// *ptr = 20;  // 错误:不能修改 ptr 指向的值
int b = 30;
ptr = &b;  // 可以改变 ptr 的值

3.指向常量的常量指针

  • 定义:上面两种的结合体,指针的指向和指针指向的值都是常量,都不能修改
int a = 10;
const int * const ptr = &a;

下一篇:函数指针与指针函数的区别

总结:

指针常量:指针的指向不可以修改,但是指针指向的值可以修改 记:指针是常量

常量指针:指针的指向可以修改,但指针指向的值不可以修改 记:常量的指针

指向常量的常量指针:指针的指向以及指针指向的值都不可以修改

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值