首页 > 编程语言 > 详细

c++ const修饰指针

时间:2015-09-13 10:34:19      阅读:134      评论:0      收藏:0      [点我收藏+]

当const遇到指针

 一般来说,const修饰指针可以分为下面的集中情况。

描述 例子 含义 备注
const在*的左边

const int *b=&a;

int const *b=&a;

const修饰指针指向的变量,也就是说我们不能通过修改指针b

指向的值去修改a。即*b=100;这种操作是错误的。

这时候,指针b本身不是常量,*b是常量。

这种情况下,如果要修改*b返回的值,也就是修改指针b所指的对象可以用两种办法:

   · 改变b指向的变量a的值,a=100;

    ·让b指向别的变量,int c=100;  b=&c;

const在*的右边 int* const b=&a;

const修饰指针,也就是说,试图改变b的值都是错误的。如:

b++; ++b;之类的操作都是错误的。

这时候,指针b本身是常量,*b是不是常量。

既然指针b是常量,那么创建她的时候必须初始化,不然会出错。
*的左右两边都有const const int* const b=&a; 指针本身和指针的内容都是常量。  

 

 

 

 

 

 

 

 

 

   额外说一点,c++定义类的时候,如果类的内部有函数我们想要它 不得修改类内部的成员变量,在该函数的形参列表后加一个const可以告诉编译器,该函数不会修改类内部的成员变量。不过你想要该函数只对一部分成员变量有该效果的话,在可以修改的成员变量前面加一个mutable就可以在该const函数里修改该成员变量了。

c++ const修饰指针

原文:http://www.cnblogs.com/pixs-union/p/4804116.html

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