首页 > 其他 > 详细

const用于指针的用法总结

时间:2014-03-06 14:12:45      阅读:419      评论:0      收藏:0      [点我收藏+]

总的来说,const 的作用就是数据保护,防止数据无意间被修改。


用法一利用const 声明,让指针指向一个常量对象(常量对象的说法并不准确,但是很多教材都这么讲的,就先暂时这么用吧)

int age = 20;
const int * pt = &age;   //将pt声明为指向const int的指针,这意味着通过pt只有读取age的权限,不能通过pt去修改age的值
*pt += 1;   //Invalid, because pt points a const int

现在来看一个细节问题,上述声明的pt并不意味着他指向的对象是一个常量,而只是意味着 pt 没有修改该对象的权限,因为age是一个常规变量,完全可以在不通过pt操作age的情况下而改变age的值,所以说pt指向常量对象这种说法并不准确。


用法二:将指针本身声明为常量,这样可以防止改变指针指向的位置。

int age = 20;
int weight = 70;
int * const pt = &age; // 将pt本身声明为一个常量指针,指向age,以后就一直指向age,不能对pt赋值指向别的对象。
pt = &weight;  //Invalid, because pt is a const pointer

当 pt 本身是一个常量指针的时候,虽然指针的值不能改变,但是可以通过 pt 去修改它所指向对象的值。比如说:假设上述 int 对象的地址为 1000,则 pt 被初始化为1000,并且 pt  的值一直为1000,不能被修改。但是可以通过 pt 修改 age 的值。


用法三:将前两种用法综合起来使用,声明一个指向常量对象的常量指针

const int age = 20;
const int * cosnt pt = &age;
此时,age是const对象,age的值永远是20不能改变,而 pt 是一个 const 指针,只能永远指向 age ,不能指向其他对象。

const用于指针的用法总结,布布扣,bubuko.com

const用于指针的用法总结

原文:http://blog.csdn.net/xinshen1860/article/details/20528657

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!