const与#define

C++中const符号表原理图  函数

const int a=10;spa

当碰见常量声明时,在符号表中放入常量作用域

编译过程当中若发现使用常量则直接以符号表中的值替换编译器

编译过程当中若发现对const使用了entern或者&操做符,则给对应的常量分配存储空间。编译

key             value变量

 a                  10原理

结论:语言

C语言中const变量是只读变量,有本身的存储空间文件

C++中的const常量co

          可能分配存储空间,也可能不分配存储空间

         当const常量为全局,而且须要在其余文件中使用时;当使用&操做符取const常量的地址时-->分配存储空间

 

C++中的const常量相似于宏定义

      const int c =5; ≈ #define c 5

C++中的const常量与宏定义不一样

       const常量是由编译器处理的,提供类型检查和做用域检查

        宏定义由预处理器处理,只是单纯的文本替换。

在函数fun中定义 const int a=10;

                          #define b 10

 则在fun函数以外,只能够使用b而不能使用a!

相关文章
相关标签/搜索