變量的定義:爲變量分配存儲空間,同時指明變量的類型和名字。另外變量的初始化,就是在變量的定義處給出值。
變量的聲明:它主要向程序聲明變量的類型和名字。
static修飾符:static int a;將變量的作用域限制在一個源文件內,對其他源文件a是不可見的。
嚴格的規則:變量有且只能有一次定義,但是可以聲明多次,使用變量前必須定義或聲明。一個項目中可以有多個源文件,但在所有的源文件中只允許出現一次對某個變量的定義。
舉例說明:
**************************************************************************
int i; //定義
int i=2; //定義
static int i; //定義
extern int i=8; //定義
extern int i; //這就是單純的聲明
*************************************************************************問題1:如果外部變量的定義各指定一個初始值?大多數系統都會拒絕接受該程序。
問題2:如果一個外部變量在多個源程序中定義卻未指定初始值?某些系統可能會接受,例如VC6.0
同樣的程序在VC++無法編譯通過。
問題3:同一變量名在不同文件中聲明爲不同的類型?需要程序員自己檢查。
爲什麼C中的const全局變量不需要賦初值,而C++中的const全局變量需要賦初值?