当前位置:主页   - 电脑 - 程序设计 - C/C++
C++中const的使用方法
来源:网络   作者:   更新时间:2012-02-18
收藏此页】    【字号    】    【打印】    【关闭

  1.const类型定义:指明变量或对象的值是不能被更新,引入目的是为了取代预编译指令

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

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

  4.可以节省空间,避免不必要的内存分配。

  例如:

  #define PI 3.14159     file://常量宏

  const doulbe Pi=3.14159; file://此时并未将Pi放入ROM中

  ……

  double i=Pi;       file://此时为Pi分配内存,以后不再分配!

  double I=PI;        file://编译期间进行宏替换,分配内存

  double j=Pi;        file://没有内存分配

  double J=PI;        file://再进行宏替换,又一次分配内存!

  const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝。

  对于基本声明

  1.const int r=100; //标准const变量声明加初始化,因为默认内部连接所以必须被初始化,其作用域为此文件,编译器经过类型检查后直接用100在编译时替换

  2. extend const int r=100; //将const改为外部连接,作用于扩大至全局,编译时会分配内存,并且可以不进行初始化,仅仅作为声明,编译器认为在程序其他地方进行了定义但是如果外部想链接r,不能这样用

  extern const int r=10; //错误!常量不可以被再次赋值

  3. const int r[ ]={1,2,3,4};

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明