const修饰问题

const修饰指针的四种情况:

int b = 500;
const int* a = &b;  // 情况1
int const *a = &b; // 情况2
int* const a = &b; //情况3
const int* const a = &b; // 情况4

1.对于情况1,const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向的为常量;如果const位于星号的右侧,则const修饰的是指针本身,即指针本身是常量。因此情况1而情况2是相同的。都是指针指向的内容为常量,这种情况下不允许对内容进行更改。
2.情况2与情况1相同
3.情况3为指针本身是常量,这种情况下不能对指针本身进行更改,而指针指向的内容是可以更改的。也即指针指向固定的内存位置,而这个位置具体存储什么值是可变的。这种情况下,指针在定义的时候就必须初始化(原因显而易见,定义之后指针的值就不能再改变,因此不能再对指针本身进行赋值操作了)
4.情况4为指针本身和指向的内容均为常量。表明指针本身的值和指向内容的值都不能更改。

const修饰成员函数的情况:
用const放在成员函数的括号之后,用来表明该成员函数不会对任何类的成员变量进行修改,原则上说任何不对成员变量进行修改的成员函数都应该声明称const,这样有助于提高代码的可读性和可靠性。

const放在函数声明之前表明该函数的返回值时常量。

在c++中const还可以用来定义常量,const定义常量对比#define的有点在于const有数据类型,编译器会对const定义的常量做类型检查。另外,有些调试工具可以对const常量进行调试而不会对宏常量进行调试。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值