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!