c语言const 解释,C语言const简析

C语言有个const,称为常量修饰符.即它所修饰的变量为常量,不允许被修改,赋值等等.

1.const int a与int const a是等价的.修饰的都是a,表示a为常量,不允许被修改的.这也意味着const修饰的量在定义的时候就应该被初始化.

2.

(1):const int *p与int const *p也是等价的,记住这里修饰的是p指针所指向的量为常量.如果想修饰一个指针的话,那么应该这样做:

p++;//合法

(*p)++;//非法

(2):int* const p;这个时候const右面是p,而且是指向整型的指针,所以此时p这个指针为常量.但是它所指向的数是可以改变的;

p++;//非法

(*p)++;//合法

3.还有就是修饰数组的,其实功能类似的.比如const char name[]="Perry";那么如果在后面有name[2]='a';这样的语句编译器就会报错,而不至于导致程序运行的时候出现崩溃.

4.const节省空间,避免不必要的内存分配,提高效率.

const推出的目的是为了取代#define预编译指令.

#include

#define M 3 //宏常量

const int N = 5; //此时并未将N放入内存中

intmain()

{int i = N; //此时为N分配内存 ,以后不再分配

int I = M; //预编译期间进行宏替换,分配内存

int j = N; //没有内存分配

int J = M; //在进行宏替换,又一次分配内存

}

const定义的只读变量从汇编的角度来看,只是给出了对应的内存地址,所以i=N,j=N的时候等于是i与j的地址指向了N这个内存静态区地址,这样达到了节省空间的目的.而不是像#define一样给出的是立即数,所以,const定义的只读变量在程序运行过程中只有一份备份(因为它是全局的只读变量,放在静态区),而#define定义的宏常量在内存中有若干个备份。

总的来说,const引入常量的概念,是让我们不去修改内存中不该修改的地方.比较直接的作用是编译器可以提前发现逻辑上的错误.比如之前的name[2]='a';如果不用的话,而我们又修改了不该改的内存,那么必然会引起程序崩溃.所以尽量多得使用const.

这只是最浅显的理解,const还有更深层次的应用,以后遇到会再记录的.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值