C Primer讀書筆記之變數的定義與宣告

2021-06-17 21:41:43 字數 533 閱讀 5489

變數的定義用於為變數分配儲存空間,還可以為變數指定初始值。在乙個程式中,變數有且有乙個定義。

宣告用於向程式表明變數的型別和名字,不分配儲存空間。定義也是宣告:當定義變數時我們宣告了它的型別和名字。可以通過使用extern關鍵字宣告變數名而不是定義它。不定義變數的宣告包括物件名、物件型別和物件型別前的關鍵字extern:

extern int i;    //宣告而非定義i

int i;          //宣告且定義i

extern 宣告不是定義,也不分配儲存空間。事實上,它只是說明變數定義在程式的其他地方。程式中變數可以宣告多次,但只能定義一次。

只有當宣告也是定義時,宣告才可以有初始化式,因為只有定義才分配儲存空間。初始化式必須要有儲存空間來進行初始化。如果宣告有初始化式,那麼它被當作是定義,即使宣告標記為extern:

extern double pi = 3.1416;   //定義

雖然使用了 extern ,但是這條語句還是定義了 pi,分配並初始化了儲存空間。只有當 extern 宣告位於函式外部時,才可以含有初始化式。 

C Primer讀書筆記之變數的預設值

先看看下面這段 int a1 char c1 string str1 int intarr1 10 char chararr1 10 int main int a2 char c2 string str2 int intarr2 10 char chararr2 10 cout a1 a1 0 a2...

《C primer 讀書筆記》 常量與變數

c 預定義數值資料型別 用來表示整數 浮點數和單個字元 字元型 char 通常用來表示單個字元和小整數,它可以用乙個機器位元組來表示。整型 int 短整型 short 長整型 long,它們分別代表不同長度的整數值。典型情況下,short 以半個字表示,int 以乙個機器字表,而 long 為乙個或...

C primer 讀書筆記

第2 章 變數和基本型別 1 變數直接初始化和變數 複製初始化 int ival 1024 direct initialization int ival 1024 copy initialization 初始化不是賦值 2 內建型別復 制初始化和直接初始化幾乎沒有區別 但 對類型別物件來 說,有些初...