C/C++中const关键字的作用

在C/C++语言中,const关键字用于定义常量,表示某个变量的值在程序运行期间不能被修改。

定义常量

const关键字可以用来定义全局变量和局部变量,其值在初始化后不能被修改

const int MAX_VALUE = 100;
// MAX_VALUE = 200; // 错误:不能修改常量的值

保护指针和引用

const可以用于保护指针或引用所指向的数据,或者指针指向的对象,防止通过指针或引用修改数据

const int* ptr = &MAX_VALUE; // 指针指向的值不能被修改
// *ptr = 200; // 错误:不能通过指针修改值

int value = 10;
const int& ref = value; // 引用所绑定的值不能被修改
// ref = 20; // 错误:不能通过引用修改值

int a = 10;
int b = 20;

int * const ptr = &a; // ptr 是一个常量指针,指向 int 类型的变量 a

*ptr = 30; // 合法:可以通过 ptr 修改 a 的值
// ptr = &b; // 非法:不能修改 ptr 的指向,即不能让 ptr 指向 b

 定义常量成员函数

const可以用于成员函数,表示该函数不会修改对象的状态,说明该函数不应该修改非静态成员,但这并不是十分可靠的,指针所指向的非成员对象值可能会被修改

class MyClass {
public:
    void setValue(int v) { value = v; }
    int getValue() const { return value; } // 常量成员函数
private:
    int value;
};

定义常量对象

const可以用于定义常量对象,表示该对象的状态在创建后不能被修改

class MyClass {
public:
    void setValue(int v) { value = v; }
    int getValue() const { return value; } // 常量成员函数,不能修改对象状态
private:
    int value;
};

const MyClass obj;
// obj.setValue(10); // 错误:不能调用非常量成员函数
cout << obj.getValue() << endl; // 正确:可以调用常量成员函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值