天天看點

C++Primer讀書筆記之變量的定義與聲明

變量的定義用于為變量配置設定存儲空間,還可以為變量指定初始值。在一個程式中,變量有且有一個定義。

聲明用于向程式表明變量的類型和名字,不配置設定存儲空間。定義也是聲明:當定義變量時我們聲明了它的類型和名字。可以通過使用extern關鍵字聲明變量名而不是定義它。不定義變量的聲明包括對象名、對象類型和對象類型前的關鍵字extern:

    extern int i;    //聲明而非定義i

    int i;          //聲明且定義i

  extern 聲明不是定義,也不配置設定存儲空間。事實上,它隻是說明變量定義在程式的其他地方。程式中變量可以聲明多次,但隻能定義一次。

  隻有當聲明也是定義時,聲明才可以有初始化式,因為隻有定義才配置設定存儲空間。初始化式必須要有存儲空間來進行初始化。如果聲明有初始化式,那麼它被當作是定義,即使聲明标記為extern:

    extern double pi = 3.1416;   //定義

雖然使用了 extern ,但是這條語句還是定義了 pi,配置設定并初始化了存儲空間。隻有當 extern 聲明位于函數外部時,才可以含有初始化式。 

繼續閱讀