C++精进之路2:const限定符及其用法

本文详细介绍了C++中的const关键字,包括其用于定义不可变变量、与宏定义的区别、修饰指针变量的三种形式以及在函数中的作用,如常量函数、参数和返回值的修饰。强调了const在代码安全和类型检查上的重要性,推荐使用const替代宏定义以提高代码质量。
摘要由CSDN通过智能技术生成

用处

定义一种值无法改变的变量,供其他程序使用。

它是一个修饰类型的关键字,需要初始化,表示变量在初始化后不再可以改变。

const与宏定义的区别

1、发生的时间不一样,宏定义发生在预处理,const发生在编译时。

2、是否进行了类型转换,宏定义只进行了字符替换,本质上只是别名,没有进行类型检查,编译时可能会出现不可预期的错误;const关键字有类型检查,在编译阶段就能检查出const的错误。

在C++中,推荐多使用const、emun替代掉宏定义

const修饰指针变量

在*前,表示指针可以改变指向,但是不能改变指向的内容的值:

char  const * str = "hello";(等同于 const char * str)

这种指针称为常量指针。

在*后面,不能改变指向,但是可以改变指针所指变量的值:

int  *  const  p = &a;

*p = 5;

这种称为指针常量;

双重限定下,为常常量:

const int * const p = &number;  //指向与值都不可改变

可以看到,const是修饰离右边最近的一个变量,将其先定为常量。

const在函数中的使用

1、修饰函数

void fun(args) const{}

常量函数,在函数内部无法对对象的数据成员进行修改,并且函数内不可调用非const函数。这种用法是为了防止修改数据成员,常在访问成员变量值的方法使用;

2、修饰函数的参数

void fun(const args){}

防止传入的参数在函数中被修改,一般与引用和指针一起使用,表示引用对象但是不允许修改对象的值;

3、修饰函数的的返回指针或者引用

return  const obj;

目的是为了防止返回的引用实体或者指针被修改,使得函数的表达式不能作为左值使用,常用于运算符重载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值