码迷,mamicode.com
首页 > 其他好文 > 详细

比较常见的const与指针的组合情况

时间:2015-10-05 00:42:20      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:

1.对于普通的const与基本类型组合,都是表示的是这是一个常量,

  const int a;

  int const a; 

   表示的意思是一样的,a是一个常量,不可改变

2.对于const与指针组合在一起,可以将const理解为内容,*理解为指针,誰在前面谁不能改变,誰在前面先读谁

  const int *a;  等价于int const *a;    const在前面所以内容不可以改变,但是指针指向可以改变。也就是常量指针

    如:int const *a=b;    这样就不能再出现*a=x等其他值了,因为内容不可变,但是可以通过a=&x;这样来进行改变指针的指向

    int *const a;  表示的是指针指向不可改变,但是指针所存放的内容可以改变,也即是指针常量

 如:int *const a=b; 这样再出现 a=&x,这样重定义指针指向的语句就不合法,只能通过*a=x这样来进行内容的改变。

      const int &ri=i;定义的是引用是另一变量的别名,它本身就是一个常量,也就是说不能再让一个引用成为另一个变量的别名。 我们不能通过ri去改变它所代表的内存区域

3.const修饰函数传入参数

       将函数传参数修饰为const,以指明使用这种参数仅仅是为了效率的原因,而不是想让调用函数能够修改对象的值,同理,将指针声明成const,函数将不修改由这个参数所指向的对象。 如:void Fun(const int *a);  void Fun(const int &a)

 

4.修饰函数返回值

       可以阻止用户修改返回值,返回值当然也要相应的赋给常量或者常指针。

    例如:有时候需要返回的是指针或者引用,我们可以通过指针修改所指的对象,但是有时候不希望改变这个内容,这个时候就需要返回一个常量。

 

5.const修饰成员函数(c++特性)

const对象只能访问const成员函数,而非const对象可以访问任意成员函数,包括const成员函数

const对象的成员是不能被修改的,而通过指针维护的对象确实是可以修改的

const成员函数不可以修改对象的数据,不管对象是否具有const性质。编译时以是否修改成员函数为依据进行检查。

  解释:

const成员函数:函数名称后面加上const。

当一个类中存在同名,同参的常量和非常量成员函数时,调用的时候,常量对象调用常量成员函数,非常量对象调用非常量成员函数。

比较常见的const与指针的组合情况

标签:

原文地址:http://www.cnblogs.com/jijiji/p/4855242.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!