C++. const_cast. 使用上的简单总结

本文详细介绍了C++中const_cast运算符的使用方法,包括如何通过指针和引用去除const属性,从而修改原本不可变的变量值。通过实例演示了const_cast在实践中的应用。

const_cast是一种C++运算符,主要是用来去除复合类型中const和volatile属性(没有真正去除)。

变量本身的const属性是不能去除的,要想修改变量的值,一般是去除指针(或引用)的const属性,再进行间接修改

#include <memory>
#include <iostream>

using namespace std;


int main(int argc, char *argv[])
{

    const int re_a = 10;
    
    // 要想修改re_a的值怎么修改呢?
    // 1. 通过指针
    const int *re_p = &re_a;
    int *re_p_1 = const_cast<int *>(re_p);
    *re_p_1 = 20;
    // 此时re_a的值变为了20
    
    // 2. 通过引用
    int &re_b = const_cast<int &>(re_a);
    re_b = 30;
    // 此时re_a的值变为了30

    return 0;
}

怎么来理解这种修改方式呢?

对于c++来说其是按变量的类型来来解释内存的,一个变量名对应一种解释类型,如果多个不同的变量名对应同一块内存,那么使用不同的变量名就具有了对此块内存的不同操作权限了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值