const 类型修饰符

const是用来限定所指定的变量或者函数不可作修改。

1)修饰变量

当const用来修饰变量的时候,const所指定部分不可修改。

    a. 修饰常规变量

  如:const int a = 10;

          int const a = 10;  // 这两种方式的效果一样,都是将a描述为常量,a的值在被赋初值后不可以修改。

但是这和由宏定义的常量(如:#define N 10)又有所区别,前者的常量是有类型的,而由宏定义的没有类型。而且,前者在使用过程中,只会产生一个副本,但是宏定义的会有多个副本。

    b.修饰带*的变量

如:1、 int const *a; //修饰的是(*a),则表示a所指的变量的内容不可变。

        2、int * const a; // 修饰的是a,则表示a不可变,即a只能指向初始指向的内存单元。

        3、const int * a ; //a和*a均不可变,即不可作为左值。


2)修饰函数

    a.修饰函数参数

     如:void  f(const int a); //a在该函数中不可被修改(虽然如此规定,但是a的修改在这里本身就不会修改实参的值),且可以传递常量

             void f(const int & a); //可以保证引用不被修改

   b. 放于函数名前,表示返回值不可被修改。无意义。

   c. 放于函数名后,此时只可修饰类成员函数。表示,该对象的数据成员不可被修改,且数据成员中的const数据只可被此类成员函数调用。

         如:class A

               {

                private:

                int a;

               public:

                 void fun() const

                   {int b =a;//a不可作为左值}

                 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值