c++中const使用的若干问题

const修饰指针的情况
小窍门:看const位于*的哪里
如果const位于*的左侧,则const是修饰指针所指向的变量。
如果const位于*的右侧,则const是修饰指针本身。

int b = 500;
const int* a = &b;//指针所指向的内容为常量,不允许更改内容
int const *a = &b;//同上
int* const a = &b;//指针的指向不能更改,定义时必须初始化
const int* const a = &b;//都是常量

对于前两种情况,内容不可更改是指不能通过指针来更改,比如*a=600;就是错误的,但是如果想更改 *a的值也不是不可以,比如可以更改b的值,或者改变a的指向,让它指向一个等于600的c变量。

那么const成员函数是什么?

类的成员函数中,const成员函数是不改变类的数据成员的一类函数,也就是只读函数。

使用方法:

//声明
int gety() const;
//在类外定义时也要加上const
int 类名::gety() const
{}

注意:如果把const放在函数声明前,const修饰的是函数返回值。

const与#define相比有什么不同?

1、const常量有数据类型,而宏常量没有数据类型
2、const在编译时进行了安全检查,而宏常量只是简单地字符替换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值