常量指针与指针常量

const是C语言中的一个关键字,用于限定一个变量不允许改变,在一定程度上用于提高程序的安全性和可靠性。

       根据const 与指针符号”*”的位置,包括常量指针、指针常量、指向常量的常量指针。

 

常量指针(以int类型为例):

       定义方法:const int *p  或 int const *p ;

       含义:其标明指针p指向的是常量,意思也就是说解引用*p的值为常量,不可修改,但p的值可以改变。

注意,我们说不能通过指针来修改其所指向的值,但并不代表该值不能改变。

       示例:

       int  a = 10;

       const int *p = &a;

       *p= *p+1;  //错误,其所指向的值发生了改变

       a= a+1;  //正确,a是普通变量,可以修改,与此同时常量指针p指向的值改变了。

 

指针常量:

       定义方法:int * const p;

       含义:指针p是常量,不可修改,但其指向的值可以改变。由于指针p本身是const的,在编译的时候就必须确定p的值(p所指向的地址),因此在声明的同时必须初始化指针p。

       示例:

       int a ;

       int b = 0;

       cin>>a;

       int* const p = &a;  //注意,此时p只给个地址,编译时并不确定a的值,运行才能确定。

       p= &b;  //错误,p这个指针为常量,不能修改。

 

指向常量的指针常量

       定义方法:const int * const p;

       含义:常量指针和指针常量的综合,在此不再赘述。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值