1、變量的定義:變量的定義用於為變量分配存儲控件,還可以為變量指定初始值。在一個程序中,變量有且僅有一個定義。
2、變量的聲明:用於向程序表名變量的類型和名字。程序中變量可以聲明多次,但只能定義一次。
3、兩者聯系和區別:
(1)定義也是聲明,因為定義變量時我們也想程序表明了它的類型和名字。
(2)但聲明不是定義,可以通過使用extern關鍵字聲明變量而不是定義它。不定義變量的聲明包括對象名、對象類型和對象類型前的關鍵字extern。
例:
extern int i;//聲明但是不定義
int i;//聲明也定義
extern聲明不是定義,也不分配存儲空間,事實上,它只是說明變量定義在程序的其他地方。
例如:extern double pi = 3.1416;//定義了
double pi;//重定義,不合法
注意:在C++語言中,變量必須僅能定義一次,而且在使用變量之前必須定義或聲明變量。
4、為什么需要區分聲明和定義:
C++程序通常由許多文件組成。為了讓多個文件訪問相同的變量,C++區分了聲明和定義。任何在多個文件中使用的變量都需要既有定義又有聲明。在這種情況下,在一個文件中定義了變量,在其他使用改變了的文件中則只能包含變量的聲明(不能再包含定義,因為變量只能定義一次)。
5、真正用的時候這種需要被別的文件用的變量,必須在本文件中定義好,比如在文件1中定義extern int i = 0;然后才可以在別的文件中使用,使用方式是:在類體的外部使用extern int i;這樣在這個類中就可以使用該外部變量了,再次強調必須先定義好,才能在別的地方通過extern聲明使用。