在C++中,关键字const是常用的关键字之一,用于标识变量或函数返回值为常量。const可以修饰任何数据类型,包括整数、字符、指针、类/结构体和指向类/结构体的指针等。
被const修饰的变量或返回值将被视为只读变量,即不能通过赋值或其他形式进行修改。声明变量时使用const关键字可以提高程序的可读性、可维护性以及安全性。
定义变量时使用const关键字可以将其标记为只读变量,这意味着变量的值不能更改,从而使代码更加安全和健壮,同时也有助于代码的可读性和可维护性。
例如,使用const修饰数组长度:
const int arr_len = 10;int arr[arr_len];
这样可以确保数组长度不会被更改,防止数组越界等错误。
在函数参数中使用const关键字可以限制函数修改参数值,从而确保函数不会不小心修改调用者传递的参数。
例如:
int add(const int x, const int y) { // x 和 y 不能被修改
return x + y;
}
函数返回值也可以使用const关键字:
const int add(const int x, const int y) { return x + y;
}
这样可以防止调用者修改函数返回值。
C++中指针与变量之间的区别在于指针存储的是另一个变量的内存地址,而不是变量本身。因此,在使用指针时,必须考虑指针指向的值是否可以被修改。const关键字可以用于指针,以指定指向的数据是否可以修改。
例如,指向常量的指针:
int x = 10;const int *ptr = &x;
*ptr = 20; // 错误:不能修改ptr所指向的值
指针本身也可以是const:
int x = 10;int * const ptr = &x;
ptr = &y; // 错误:指针本身不能被修改
指向常量的指针也可以是const:
int x = 10;const int * const ptr = &x;
*ptr = 20; // 错误:指向的值不能被修改
ptr = &y; // 错误:指针本身不能被修改