const
是一个关键字,用于限制变量、函数参数、函数返回值等的值不能被修改
1.变量的const
限定符:
在变量定义时使用const
限定符,表示该变量的值是常量,不可修改。
例如:const int a = 10;
2.函数参数的const
限定符:
在函数的参数列表中,对某个参数使用const
限定符,表示该参数是只读的,函数内部不可以修改该参数的值。
例如:void func(const int a);
3.函数返回值的const
限定符:
在函数声明时,在函数返回类型前面添加const
关键字,表示返回值是常量,不可被修改。
例如:const int func();
4.const
成员函数:
4.函数声明为const:
当一个函数被声明为const时,表示该函数不会修改任何类成员的状态。这通常用于类的成员函数中。例如:
class MyClass {
public:
int getValue() const {
return value;
}
private:
int value;
};
在上面的例子中,getValue函数被声明为const,表示该函数不会修改MyClass类的任何成员变量的值。
5.const修饰指针变量的时候:
1. const如果放在*的左边,修饰的是指针指向的内容,保证指针指向的内容不能通过指针来改变,但是指针变量本身的内容可变
int num = 10;
const int* p = #
*p = 20; //无效,不能修改p所指向的对象的值
p = nullptr; //有效,可以修改p的值
2. const如果放在*的右边,修饰的是指针变量本身,保证了指针变量的内容不能修改,但是指针指向的内容,可以通过指针改变。
int num = 10;
int* const p = #
*p = 20; //有效,可以修改p所指向的对象的值
p = nullptr; //无效,不能修改p的值