更多关于C++的总结汇总博客可以参考这个:C++刷题基础知识(栈、队列、hash、STL、基础函数等)---持续更新-CSDN博客
在C++中,const
关键词有几种不同的用法,都用于增强代码的安全性和可读性。
常见的用法可以分为如下几种:
- 声明常量
- 修饰指针
- 修饰引用
- 修饰函数参数
- 修饰成员函数
- 修饰类成员函数
//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博客