您的位置:首页 > 其它

1.2.5对指针使用const限定符

2015-12-22 23:05 225 查看
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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: