C++ const 限定符

1、const 作用可以简单的理解为只读,即不能修改,const变量因为不能修改,必须要有初始化,否则会出错
example:

const  int  a = 0;   //定义一个const型的int变量
a = 10;              //错误,不允许向const修饰的对象赋值
const  int   b;     //错误,必须初始化

2、const修饰的变量虽然不能修改,但是可以参与那些不改变自身内容的运算,例如算数运算和布尔运算,也可以对其它变量赋值
example:

const  int  b = 10;
int         c = b;      //正确
int         d = b+10;   //正确
c = b++;                //错误,不能进行自加运算
if(b)                   //正确
{
    d = b*(c+1);       //正确
}

3、可以对非const型的变量定义一个const类型的引用,但是反之则不行。
记住,对非const型变量定义const型的引用之后,该变量的值不能通过该引用修改,但是可以通过其他方法,甚至别的引用修改

int  a  = 0;
const int &b = a;       //正确
const int  c = 100;     
int &d = c;             //错误
int &m = a;             //正确
a  = 10;                //正确,a是非const型的
m  = 100;               //正确,m是a的非const型引用
b  = 20;                //错误,不允许通过b修改a

float   f = 3.1415;
const int  &e = f; //正确,会将f拷贝一份后强制转换成int型后赋给e

4、常量指针与指针常量:常量指针即指针指向的内容不可改变,但是指针的指向可以改变
指针常量即指针的指向不可以改变,但是指向的内容可以改变,下面举例说明

int  a  = 10;
int  b  = 20;
int  const *p = &a;//常量指针
//int const *p  等价于 const int *p
int *const q  = &b;//指针常量
int  c  = a+b;
p = &c;         //正确
*p = 100;       //错误,不可以通过常量指针修改变量
q = &c;         //错误,不可以改变指针的指向
*q= 50;         //正确,可以通过指针常量修改所指向的内容
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值