1.2.5对指针使用const限定符

来源:互联网 发布:开淘宝店铺怎么描述 编辑:程序博客网 时间:2024/06/03 19:58

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
原创粉丝点击