C++基础之const

 更多关于C++的总结汇总博客可以参考这个:C++刷题基础知识(栈、队列、hash、STL、基础函数等)---持续更新-CSDN博客

在C++中,const关键词有几种不同的用法,都用于增强代码的安全性和可读性。

常见的用法可以分为如下几种:

  1. 声明常量
  2. 修饰指针
  3. 修饰引用
  4. 修饰函数参数
  5. 修饰成员函数
  6. 修饰类成员函数
//1.声明常量:const关键词可以用来声明常量。常量是在程序运行期间不能被改变的值。
//其中MAX_VALUE被定义为一个常量,并且被初始化为100。你不能在之后的代码中改变MAX_VALUE的值。
const int MAX_VALUE = 100;

——————————————————————————————————————————————————————————————————
//2. 修饰指针:const关键词可以用来修饰指针,产生常量指针(指针所指向的内容不能被改变)或只读指针(指针本身不能被改变)。例如:
int value = 50;  
int* const ptr = &value; // 常量指针,指针不能被改变,但是可以改变它所指向的值  
const int* ptr2 = &value; // 只读指针,它所指向的值不能被改变,但是指针本身可以改变

——————————————————————————————————————————————————————————————————
//3.修饰引用:const关键词可以用来修饰引用,产生常量引用。常量引用在声明时必须被初始化,而且不能通过常量引用来修改其引用的对象。例如:
const int& ref = value; // 正确,ref 是一个常量引用,它引用的是 value  
int& const ref2 = value; // 错误,const 应该修饰引用前面的部分

——————————————————————————————————————————————————————————————————
//4.修饰函数参数:如果在函数参数前加上const,这意味着该参数在函数体内不能被修改。
void func(const int param) { // 在函数体内部,param 不能被改变  
    // ...  
}

——————————————————————————————————————————————————————————————————
//5.修饰成员函数:在成员函数后面使用const关键词,表示这个成员函数不会修改类的任何数据成员。
class MyClass {  
public:  
    int getSomeValue() const { // 这个成员函数不会修改类的任何数据成员  
        return someValue;  
    }  
private:  
    int someValue;  
};

——————————————————————————————————————————————————————————————————
//6.修饰类成员函数:在类定义中,如果希望某个成员函数不修改类的任何数据成员,可以在该函数后面添加const关键词。
class MyClass {  
public:  
    int getSomeValue() const; // 这个成员函数不会修改类的任何数据成员  
private:  
    int someValue;  
};

注意:对于修饰问题可以参考先左再右的规则,即首先判断关键词的左边,比如对于这两句代码;

1----  int* const ptr = &value; // 常量指针,指针不能被改变,但是可以改变它所指向的值  
2----  const int* ptr2 = &value; // 只读指针,它所指向的值不能被改变,但是指针本身可以改变

第一句中int* const ptr修饰左边的指针,因此也就意味着ptr的指针指向地址不能变动;

第二句中const int* ptr由于const左边已经没了,因此向右看,因此他修饰的int值类型,意味着不可以修改指针指向的值;

更多关于C++的总结汇总博客可以参考这个:C++刷题基础知识(栈、队列、hash、STL、基础函数等)---持续更新-CSDN博客

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值