C/C++中const关键字的用法小结-创新互联

C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册网站空间、营销软件、网站建设、德化网站维护、网站推广。

Const作用

NO.作用说明参考
1可以定义const常量const int Max = 100;
2便于进行类型检查const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误void f(const int i) { ………} //对传入的参数进行类型检查,不匹配进行提示
3可以保护被修饰的东西防止意外的修改,增强程序的健壮性void f(const int i) { i=10; //error! } //如果在函数体内修改了i,编译器就会报错
4可以很方便地进行参数的调整和修改同宏定义一样,可以做到不变则已,一变都变
5为函数重载提供了一个参考class A { void f(int i) {……} //一个函数 void f(int i) const {……} //上一个函数的重载 …… };
6可以节省空间,避免不必要的内存分配const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝define PI 3.14159 //常量宏 const doulbe Pi=3.14159; //此时并未将Pi放入ROM中 …… double i=Pi; //此时为Pi分配内存,以后不再分配! double I=PI; //编译期间进行宏替换,分配内存 double j=Pi; //没有内存分配 double J=PI; //再进行宏替换,又一次分配内存!
7提高了效率编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高

提到 const 都知道是修饰常量的,在一个变量前加上const 关键字后这个常量就不可以再赋值了!

C语言中不是有#define吗,干嘛还要用const呢,我想事物的存在一定有它自己的道理,所以说const的存在一定有它的合理性,与预编译指令相比,const修饰符有以下的优点:

1、预编译指令只是对值进行简单的替换,不能进行类型检查

2、可以保护被修饰的东西,防止意外修改,增强程序的健壮性

3、编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。

(以上三点摘抄自:https://www.jb51.net/article/70831.htm)

const 的应用

1 定义常量

const int a=5;
 int const a=5;

另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享标题:C/C++中const关键字的用法小结-创新互联
标题URL:http://scyanting.com/article/ddiogj.html