定义与概述
const
是 C 语言中的一个关键字,主要用于声明常量或定义不可修改的变量。在程序中使用const
可以增加代码的可读性和安全性,防止意外修改不应改动的数据。
主要用法
声明常量
const int PI = 3.14159265; // 声明一个整型常量PI
这里声明了一个不可更改的整型常量 PI
,在程序执行期间其值始终保持不变。
修饰指针
常量指针(指向常量的指针)
const int value = 10;
int const *ptr = &value; // ptr是一个指向常量int的指针
*ptr = 20; // 错误,不能通过指针修改常量值
常量指针指向的内存区域是不可修改的。
指针常量(常量指针)
int value = 10;
int *const ptr = &value; // ptr是一个常量指针,不能再指向其他地址
*ptr = 20; // 正确,可以修改指针指向的内容
ptr = &another_value; // 错误,不能改变ptr的地址
指向常量的常量指针
const int value = 10;
const int *const ptr = &value; // ptr是一个指向常量int的常量指针
*ptr = 20; // 错误,不能通过指针修改常量值
ptr = &another_value; // 错误,不能改变ptr的地址
这种类型的指针既不能改变指向的地址,也不能通过它修改所指向的常量值。
函数参数
void printValue(const int val) {
// ...
}
在函数参数中使用const
关键字可以明确告知编译器,函数内部不会修改这个参数的值,提高了代码的可读性和安全性。
成员函数中的 const 关键字
class MyClass {
public:
void display() const; // 声明一个常量成员函数
};
void MyClass::display() const {
// 在这个函数内部,不能修改类的成员变量(除非它们是mutable的)
}
在类成员函数声明或定义前加上const
关键字,意味着这个函数不会修改类的任何成员变量,这样的函数被称为常量成员函数。
总结,const
关键字在C语言中起到保护数据、约束指针行为以及增强代码语义的作用,可以帮助开发者写出更健壮和易于理解的代码。
评论区