變量的定義用於爲變量分配存儲空間,還能夠爲變量指定初始值。在一個程序中,變量有且僅有一個定義。
聲明用於向程序代表變量的類型和名字,定義包括聲明:當定義變量時聲明瞭它的類型和名字。能夠經過使用extern關鍵字聲明變量名而不定義它。不定義變量的聲明包括對象名、對象類型前的關鍵字extern函數
變量的聲明有兩種狀況:spa
一、一種是須要創建存儲空間的。例如:int a 在聲明的時候就已經創建了存儲空間。對象
二、另外一種是不須要創建存儲空間的。 例如:extern int a 其中變量a是在別的文件中定義的。內存
聲明是向編譯器介紹名字--標識符。它告訴編譯器「這個函數或變量在某處可找到,它的模樣象什麼」。編譯器
所謂定義就是(編譯器)建立一個對象,爲這個對象分配一塊內存,並給它取上一個名字,這個名字就是就是咱們常常所說的變量名或對象名。編譯
聲明有2重含義:變量
(1) 告訴編譯器,這個名字已經匹配到一塊內存上,下面的代碼用到變量或者對象是在別的地方定義的。聲明能夠出現屢次。程序
(2) 告訴編譯器,這個名字已經被預約了,別的地方不再能用它來做爲變量名或對象名。文件
定義和聲明的最重要區別就是:co
定義建立對象併爲這個對象分配了內存,聲明沒有分配內存。