1.const 作用
在C++中,const 关键字用于定义常量,确保某些数据不会被修改。const 的作用包括但不限于以下几点:
1. 定义常量值:
const 可以用来定义不会改变的常量值 const int MAX_USERS = 100;
2. 修饰指针:
const可以修饰指针,以限制指针指向的数据是否可以被修改。
a) 指向常量的指针:指针指向的值不可变
const int* ptr; // 指针指向的值不可变
b)常量指针:指针本身的值不可变,但指向的值可以变。
int* const ptr = &someInt; // 指针本身的值不可变
c)指向常量的常量指针:指针本身的值和指向的值都不可变。
const int* const ptr = &someInt; // 指针和指向的值都不可变
3. 修饰函数参数:
const 可以用于函数参数,表示参数在函数内部不会被修改。
void print(const int& num) {
// num 在函数内不会被修改
}
4. 修饰函数返回值:
const 可以用于函数返回值,表示返回的值不会被修改。
const int getValue() {
return someValue;
}
5. 修饰成员函数:
const 可以用于类的成员函数,表示该函数不会修改类的任何成员变量。
class MyClass {
public:
void display() const {
// 该函数不会修改任何成员变量
}
};
6. 修饰类成员变量:
const 可以修饰类的成员变量,表示该成员变量是常量,不会被修改。
class MyClass {
public:
const int value;
};
7. 提高代码可读性:
使用 const 可以提高代码的可读性,让其他开发者知道哪些变量和函数不应该被修改。
8. 编译时检查:
const 可以提供编译时检查,如果代码尝试修改一个 `const` 修饰的变量或通过 `const` 修饰的函
数修改变量,编译器会报错。
除此之外
const 修饰的变量可以帮助编译器进行优化,因为编译器知道这些变量的值不会改变,可以进行
更多的优化操作。 多线程编程中的线程安全:在多线程编程中,const 修饰的变量可以被多个线程
安全地访问,因为它们不会被修改。