const的用法(二)

1const的用法

为什么使用const

解答:因为(1) 采用符号常量写出的代码更容易维护;(2) 指针常常是边读边移动,而不是边写边移动;(3) 许多函数参数是只读不写的。

const有什么用途?

解答:(1) 可以定义const常量;(2) const可以修饰函数的参数、返回值及函数的定义体,被const修饰的东西都受到强制保护,可以预防意外地修改,能提高程序的健壮性。

const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替)

用法1:常量

取代了C中的宏定义,声明时必须进行初始化。const限制了常量的使用方式,并没有描述常量应该如何分配。如果编译器知道了某const的所有使用,它甚至可以不为该const分配空间。用const声明的变量虽然增加了分配空间,但是可以保证类型安全。C标准中,const定义的常量是全局的,C++中视声明位置而定。

用法2:指针和常量

使用指针时涉及到两个对象:该指针本身和被它所指的对象。将一个指针的声明用const“预先固定”将使那个对象而不是使这个指针成为常量。要将指针本身而不是被指对象声明为常量,必须使用声明运算符*const。所以出现在* 之前的const是作为基础类型的一部分:

char *const cp;  // 到char的const指针

char const *pc1;  // 到const char的指针

const char *pc2; // 到const char的指针(后两个声明是等同的)

用法3const修饰函数传入参数

将函数传入参数声明为const,以指明使用这种参数仅仅是为了效率的原因,而不是想让调用函数能够修改对象的值。同理,将指针参数声明为const,函数将不修改由这个参数所指的对象。

通常修饰指针参数和引用参数:

void Fun( const A *in); // 修饰指针型传入参数

void Fun(const A &in);  // 修饰引用型传入参数

用法4:修饰函数返回值

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

用法5const修饰成员函数

const对象只能访问const成员函数,而非const对象可以访问任意的成员函数,包括const成员函数;const对象的成员是不能修改的,而通过指针维护的对象却是可以修改的;const成员函数不可以修改对象的数据,不管对象是否具有const性质。编译时以是否修改成员数据为依据进行检查。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值