一、c語言中的const
1. const修飾的變數是唯讀的,本質上還是變數
2. const修飾的區域性變數在棧上分配空間
3. const修飾的全域性變數在唯讀儲存區分配空間
4. const只在編譯期有用,在執行期無用
const修飾的變數不是
真正的常量,它只是告訴編譯器該變數不能出現在賦值符號的左邊。
c語言中真正意思上的常量只能通過列舉(enum)來定義 二
、c++語言中的const
1.c++是在c的基礎上對const進行的進化處理
1.1 當碰見const宣告時在符號表中放入常量
1.2 編譯過程中若發現使用常量則直接以符號表中的值替換
1.3 編譯過程中若發現下述情況則給對應的常量分配儲存空間
1.3.1 對const常量使用extern
1.3.2 對const常量使用&操作符
#include
intmain()
gcc編譯器結果為 5 5
g++編譯器結果為 0 5
2 .c++中的const常量
類似於巨集定義
constintc
=5; 類似
#definec5
3 .c++中的const常量在與巨集定義不同
3.1 const 常量是由
編譯器處理
3.2 編譯器對
const
常量進行
型別檢查 和作
用域檢查
3.3 巨集定義由預處理器處理,
單純的文字替換 三
、c++中的const與define 對比
const被編譯器處理而define被預編譯器處理
#include
voidf()
voidg()
intmain()
;
inti=0;
for(i=0;i
<(a
+b);i
++)
f();
g();
return0;
}
四、小結
1.與c語言不同,c++中的const不是唯讀變數
2.c++中的const是乙個真正意義上的常量
3.c++編譯器可能會為const常量分配空間
4.c++完全相容c語言中const常量的語法特性
C 進化後的const分析
事物的難度遠遠低於對事物的恐懼!對於const關鍵字,在c高階分析中,我們知道,const在c語言中有如下特性 const修飾的變數是唯讀的,其本質還是變數而,也就是唯讀變數 依舊可以通過別的手段修改const變數 const修飾的區域性變數在棧上分配空間 const修飾的全域性變數或靜態區域性變數...
第3課 進化後的const分析
1 const修飾的變數具有唯讀屬性,本質還是變數,只是告訴編譯器該變數不能出現在賦值符號的左邊。2 const 修飾的區域性變數在棧上分配空間,修飾的全域性變數在唯讀儲存區分配空間。3 const 只在編譯期間有用,在執行期間無用。const 不能定義真正意義上的常量 const英文含義 4 c ...
第3課 進化後的const分析
本文內容取自於對狄泰學院 唐佐林老師 c 深度解析 課程的學習總結 const修改的變數是唯讀的,本質還是變數const修改的區域性變數在棧上分配空間 const修改的全域性變數在唯讀儲存區分配空間 const只在編譯期有用,在執行期無用 const 修飾的變數不是真的常量,它只是告訴 編譯器該變數...