具體來說,在C ++中,例如之間的語義差異是什么:static const int x = 0 ;和const int x = 0 ;同時static用作鏈接和存儲類說明符(即函數內部和外部)。
2 回答

慕慕森
TA貢獻1856條經驗 獲得超17個贊
在文件范圍內,C ++沒有區別。 const
將內部鏈接設置為默認值,并且所有全局變量都具有靜態生存期。但是第一個變體在C中的行為相同,因此這可能是使用它的一個很好的理由。
在一個函數中,第二個版本可以從參數中計算出來,在C或C ++中,它不必像某些其他語言所要求的那樣是編譯時常量。
在類中,與函數基本相同,const
可以在ctor-initializer-list中計算實例值。static const
在啟動初始化期間設置A ,在其余程序中保持不變。(注意:static
成員的代碼看起來有些不同,因為聲明和初始化是分開的。)
請記住,在C ++中,const
表示只讀,而不是常量。如果您有指向的指針const
,則程序的其他部分可能會在您不查找時更改該值。如果使用定義了變量const
,則初始化后沒有人可以更改它,但是初始化仍然可以是任意復雜的。
- 2 回答
- 0 關注
- 479 瀏覽
添加回答
舉報
0/150
提交
取消