C++中const的用法

const 我们都见过,但是今天,我们会从头开始重新再说const的所有用法。

一、const修饰普通变量

当我们定义一个变量时,前面加上const修饰的话,这个变量将不再能被修改,称之为常变量。例如:

int a=10;
a=20;

const int b=10;
int const c=10;
b=20;

在上述代码中,a称之为变量,b称之为常变量。变量修改没有任何问题,但是常变量有“常”属性,不能被修改,所以下面两行是错误的。

另外,常变量必须初始化

int a;
a=10;
a=20;

const int b;
b=10;

你觉得,我定义一个常变量,然后后面再对他进行赋值能对嘛,答案是:不能! 

const可以代替一些宏:

#define MAX_NUMBER 1e8
const long long MAX_NUMBER=1e8;

为什么写起来宏更方便,我们还要用const,我只能告诉你:const更加安全。

const修饰普通变量很常用,也很简单,除了记得必须初始化外,需要注意的点也不多。

二、const修饰指针变量

好嘛!这第二个就开始说const与指针的事了,这简直就是羊了个羊的难度跨越。const修饰指针跟羊了个羊一样,看起来规则就这,但其实玩起来,那需要注意的就多了,用的时候小心点就ok了。

1.常量指针

(常指针)常量指针实质顾名思义就是一个指针,但是我们不能通过指针去修改指向的变量,所以这个指针就是常量指针。来看一下语法:

int a=10;
const int *p=&a;

//或者你也可以这么写
int const *p=&a;

但无论上边哪种写法,我们都可以发现一个问题,const真正修饰的不是变量p,而是*p,*p是什么,不就是p指向的内存的内容嘛,const修饰了,那我们就不能修改了。但p这个指针的指向可以改变,指向别的变量:

int a=10;
int b=20;

const int p=&a;
p=&b;

这么写是没有任何问题的。但同样的,不管p指向哪块儿内存,都不能修改p指向的内容,只能修改p的指向,p也成了常量指针,它的意义就是防止通过指针修改变量。 

2.指针常量 

 指针常量就是一个常量,这个常量表示一个指针,也就是这个常量的数据内容是一个地址信息。什么意思呢?看代码:

int a=10;
int b=2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值