C++中const的各种作用

本文深入解析C++中的常量表示法,包括const的多种使用场景:如常量变量、指针常量、常量指针、类中的常量成员,以及在函数参数和返回值中的应用。通过具体示例,帮助读者理解const如何限制变量的修改,提高代码的安全性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常量的两种表示法

const int a=12;//a为常量 无法改变a的值 
int const a=12;//a为常量 无法改变a的值 

const int a; a=12//不合法.常量必须在声明时就给出值 后续无法再赋值

常量指针与指针常量

取决于const的位置 const只有在*后面才是控制指针 其余都是控制的变量

nt a=10,b=99;
const int*p=&a;//指针常量 无法用指针改数据值(但可以直接改动数据本身) 
                //即*p=111不合法 a=233还是可以用
int const *p=&a;//还是指针常量 const这两个位置都是一样的
int *const p=&a;//常量指针 指针只能指向初始时数据 即p=&b不合法

 const在class中作用

class MyClass {
private:
    const int a=23 ;//常量 可以在声明时赋值
public:
    MyClass(int aa):a(aa)//还可以在初始化列表赋值
    {}
    Myclass(int aa){a=aa;}//不合法 无法这样对类常量赋值
    void func()const{ //常成员函数 不能在其中改变成员的值      
                   //也不能调用其他非const成员函数因为其他非const
                   //成员函数可能会修改了成员数据
     }                 
};

const修饰类对象/对象指针/对象引用时无法修改任何成员变量,也无法调用任何非const成员函数

const在函数的参数中应用

const在修饰函数的参数时,与修饰一个变量的作用都是一样的,最常用方法如下 

void function(const Class&var);//引用传递参数,参数无法修改
void function(Class const &var);//引用传递参数,参数无法修改

引用传递参数是直接使用的参数地址,省去了值传递参数时先拷贝一个副本再传递的步骤,节省了时间和空间 const修饰引用参数就可以避免参数传递后被函数内部修改

const修饰函数返回值

不太常用,返回值有太多限定了。因为const修饰类对象/对象指针/对象引用时无法修改任何成员变量,也无法调用任何非const成员函数 

const int *func();//调用时 const int *val=func();
int *const func2();//调用 int *const val=func2();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值