1.2.5对指针使用const限定符

1.左值和右值

          左值必须能被计算和修改。

          左值表达式在赋值语句中既可以作为左操作数,也可以作为右操作数;

2.指向常量的指针

          const int *p;

          它告诉编译器,*p是常量,不能将*p作为左值进行操作。但这里的指针p还是一个变量,它的内容存放常量的地址,所以先声明常量指针再初始化是允许的,指针也是允许  修改的,例如:

int

 a=

0

,b=

1

const

 

int

 *p;  

//

声明常量指针

p=&a;            

//p

指向

p=&b;            

//

修改指针

p

让其指向

b

,允许

 

*p=

2

;            

//

不允许

          int a=0,b=1; 
          const int *p;  //声明常量指针p p=&a;            //p指向a 
          p=&b;            //修改指针p让其指向b,允许 

          *p=2;            //不允许          

          p不能像*p = 2这样赋值,但是可以通过使用"a = x "改变a的值。

          const int y = 58;//常量y,

          const int *p = &y;//定义指向常量y的指针p;

3.常量指针

         x = 5;

         int *const p = &x;

         因为这个指针本身是常量,编译器要求给它一个初始化值;

         不能改变p的指向,但是这个地址里的内容可以使用间接引用运算符“*”改变其值,例如语句“*p = 56”,将上面的x的值改变为56.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值