注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 校园网重规划
 帮助

指针与const


2007-12-14 21:08:27
 标签:软件 指针 const   [推送到技术圈]

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://298452.blog.51cto.com/288452/55192
   int pt=10;
const int *p=&pt;  *p为一个const量,p指向一个const int,不能改变p所指向的值,即*p不能被修改,但是可以改变p的指向。如:*p=1000;(invalid)   pt=1000;(valid),此时,p将指向存放1000的地址了,通过变量pt改变了*p的值。
int * const pp=&pt; pp为一个const量,只能指向pt,不能改变pp的值,但是可以改变pp指向的值*pp,如:*pp=1000;(valid) pp=&pc;(invalid)
const int* const ppp=&pt; ppp为一个const量,*ppp也是一个const量,ppp只能指向pt,也不能通过ppp所指向的值改变int的值,也不能改变ppp
  如果数据本身不是指针,那么可以将const数据或者非const数据的地址赋给指向const的指针,但是,只能将非const数据的地址赋给非const的指针,不能将const数据地址赋给非const的指针,因为可以通过该指针更改数据,从而产生冲突。
  通常我们利用指向const的指针来保护数据,可以避免由于无意间修改数据,能使函数处理处理const和非const实参,否则只能处理非const数据。

本文出自 “lion_pc” 博客,请务必保留此出处http://298452.blog.51cto.com/288452/55192





    文章评论
 
2007-12-15 09:37:11
非常好的总结

2007-12-16 13:15:55
我也来支持一下

 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: