c與c 中const使用

2021-09-19 12:25:48 字數 871 閱讀 5187

c中可以修改const修飾的變數的值

//區域性變數  

int main()

//全域性變數

const int c = 10;//唯讀

int main()

c++中不可以修改const修飾的變數的值

//區域性變數

int main()

為什麼*p輸出的是11?

原因: 區域性變數 const int c其實是儲存在符號表中,無記憶體位址,但自己對c進行&c,那麼編譯器會為c分配乙個位址,

但取c的值依然是從符號表中取值,而用指標int *p=&c;*p=11;這個值是改變c的記憶體所表示值,不會改變符號表中c的值

//全域性變數

const int c = 10;

int main()

為什麼會段錯誤?

c++中全域性const變數是不分配記憶體位址的,它編譯器放置在符號表中作為編譯期常量,全域性const變數放在唯讀資料段中,

受到唯讀資料段的許可權保護,當你修改乙個唯讀資料段中的內容時,會得到乙個執行時錯誤。

c語言中的const變數

c語言中const變數是唯讀變數,有自己的儲存空間

c++中的const常量

可能分配儲存空間,也可能不分配儲存空間

當const常量為全域性,並且需要在其它檔案中使用,會分配儲存空間

當使用&操作符,取const常量的位址時,會分配儲存空間

當const int &a = 10; const修飾引用時,也會分配儲存空間

int  main(void) 

借鑑:

const在C與C 中的使用

在c語言中const修飾唯讀變數,例如 const int a 0 此時a為唯讀的,不能通過 a 10 這種手段進行值的修改,若想修改a的值,可通過指標來完成,如 int pa int a,pa 10 此時 a 的值變為10 在c 中,若const修飾變數,則該變數變為常量,儲存在符號表中,使用時在...

c中的const與c 中的const

c中的const是乙個偽唯讀識別符號。include include int main 此時輸出a的值為20,被指標間接的改變了。c 中,const進行了增強,不在是乙個偽識別符號了。const int a 10 int p int a p 20 cout a p endl cout a endl ...

C中CONST的使用

基本解釋 const是乙個c語言的關鍵字,它限定乙個變數不允許被改變。使用const在一定程度上可以提高程式的健壯性,另外,在 別人 的時候,清晰理解const所起的作用,對理解對方的程式也有一些幫助。雖然這聽起來很簡單,但實際上,const的使用也是c語言中乙個比較微妙的地方,微妙在何處呢?請看下...