C/C++的const修饰符用法总结

在这里插入图片描述

已经玩了C++三年的菜鸟一枚,因此本文部分内容可能有误,请见谅。

作用:只读,不能修改。

规则:const 默认作用于其左边的东西,否则作用于其右边的东西。从右往左即可读懂。

const applies to the thing left of it. If there is nothing on the left then it applies to the thing right of it.

变量声明:

名字声明解释含义
常量整型const int aconst 修饰 int 为常量整型不能修改值,必须初始化
常量整型int const aconst 修饰 int 为常量整型不能修改值,必须初始化
指向常量整型的变量指针const int *aconst 修饰 int 为常量整型,* 作用于常量整型指针可修改,内容不可修改
指向常量整型的变量指针int const *aconst 修饰 int 为常量整型,* 作用于常量整型指针可修改,内容不可修改
指向变量整型的常量指针int* const aconst 修饰 * 为常量指针,int 说明是变量整型指针不可修改,内容可修改
指向常量整型的常量指针const int* const a左边的 const 修饰 int 为常量整型,右边的 const 修饰 * 为常量指针指针不可修改,内容不可修改
指向常量整型的常量指针int const* const a左边的 const 修饰 int 为常量整型,右边的 const 修饰 * 为常量指针指针不可修改,内容不可修改
指向常量整型的常量指针const int* a const左边的 const 修饰 int 为常量整型,右边的 const 修饰 * 为常量指针指针不可修改,内容不可修改
变量指针指向一个指向常量整型的常量指针int const * const *a左边的 const 修饰 int 为常量整型,右边的 const 修饰 * 为常量指针,右边的 * 作用于变量,表示这是一个变量指针指针可修改,指针的指针不可修改,指针的指针内容不可修改
常量指针指向一个指向常量整型的常量指针int const * const * const a左边的 const 修饰 int 为常量整型,中间和右边的 const 修饰 * 为常量指针指针不可修改,指针的指针不可修改,指针的指针内容不可修改
常量引用const int &aconst 修饰 int 为常量整型不能通过常量引用去修改其引用的值,必须初始化
常量引用int const &aconst 修饰 int 为常量整型不能通过常量引用去修改其引用的值,必须初始化
引用常量int &const a不存在不存在
常量对象const MyClass aconst 修饰 MyClass 为常量对象不能修改成员变量的值,只能调用常量成员函数

函数声明:

名字声明含义
常量作为函数参数void MyFun (const int a)函数内部不允许修改常量的值
常量引用作为函数参数void MyFun (const int &a)函数内部不允许修改常量的值
常量成员函数void MyFun () const常量成员函数内部不允许修改成员变量,也不允许调用非常量成员函数
返回常量值的函数const int MyFun ()防止函数返回值作为左值,且作为右值只能为 const int 类型赋值
返回常量引用的函数const int& MyFun ()防止函数返回值作为左值,且不会调用复制构造函数
返回常量指针的函数const int* MyFun ()防止函数返回值作为左值,且作为右值只能为 const int 指针赋值
返回指向常量整型的常量指针的函数const int* const MyFun ()防止函数返回值作为左值,且作为右值能为 const int* const 和 const int 指针赋值
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值