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

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