关闭

指针和const限定符

528人阅读 评论(0) 收藏 举报
分类:



1、指向const对象的指针



如果指针指向const对象,C++要求指向const对象的指针也必须具有const特性:
	const double _pi = 3.1415926;
	const double *cptr = &_pi;

  • 指针cptr本身不是const,也就是允许给cptr重新赋值指向另外一个const对象。
  • 不能使用void*指针保存const对象的地址,而必须使用 const void*
  • 允许把非const对象地址赋值给cptr(当然也就不能通过cptr来修改其值了)
可以把指向const的指针理解为“自以为指向const的指针”

2、const指针



const指针本身的值不能修改
	int _number = 0;
	int *const _ptr = &_number;
可以从右向左把上述语句读为:_ptr是指向int型对象的const指针
既然为const,_ptr在定义时初始化后就不能再指向其他对象了。
虽然_ptr是const,不过并没有说明指针指向的对象不能修改,该对象还是完全取决于其自身的属性。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:26205次
    • 积分:375
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:10篇
    • 译文:0篇
    • 评论:1条
    文章分类