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!

相關文章
相關標籤/搜索