const的作用

一、const是什么
const 是一种变量修饰符,修饰紧跟其后的变量,使得该变量为常量值,不能够被修改。

const int n = 5
int const n = 5

两行代码是一样的,const修饰n,使得n为一个常量值(不修饰其后的数据类型int,而是直接修饰变量n),
所以这种写法就是错误的:

const int n = 0;
n= 5

再看下面const与指针结合的这个例子,能够大大加深大家都const是一种”变量”修饰符的理解。

const int * p 
int const *q

根据上面的论述,我们知道const是一种变量修饰符,所以在此const修饰*p、*q,我们都知道*p,*q指的是指针指向的内存中的值,加上const修饰符,指的是*p,*q中的值不变,为一个常量。如果想使指针为常量怎么办呢?可以这样修饰:

int * const p = &n

根据cosnt修饰紧跟其后的变量定义,在此const修饰p,而p为一个指向变量n地址的int型指针,所以在此p为一个常量指针,即指针指向的地址不能被修改。但是地址中存放的数据可以修改。

二、const的作用
1、指明变量或者对象不能够被修改,保护被修饰的东西,防止被意外修改,增加程序的健壮性。
2、节省空间,减少不必要的内存分配(编译器通常不会为const修饰的变量分配内存空间,而是直接将变量保存在符号表中,使得它成为一个编译期间的常量,这就避免了对变量的内存读写操作,效率也是相当的高的)。

三、为什么不使用#define
预处理命令(#define)虽然也可以进行值替换,但是预处理有一点不好即预处理命令只是进行简单的值替换,并不进行语法的检查,所以会存在一定的隐患。

文章借鉴了bigloom的博客,想要详细了解const作用的同学可以看下他的博客:http://blog.csdn.net/bigloomy

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值