定義 與 宣告
《c++primer》第四版 2.3.5節中這麼說到:
1、變數定義:用於為變數分配儲存空間,還可為變數指定初始值。程式中,變數有且僅有乙個定義。
2、變數宣告:用於向程式表明變數的型別和名字。
3、定義也是宣告:當定義變數時我們宣告了它的型別和名字。
4、extern關鍵字:通過使用extern關鍵字宣告變數名而不定義它。
我認為宣告是向編譯器告知我將要使用這個識別符號(我有這麼乙個「房間」),但並未向計算機申請記憶體空間,就是給這個識別符號乙個「乙個房間號」。(我有一這麼套**套房,但沒有說是幾層,幾號)。
而定義是在說有這麼一套房時同時說出房間號。
這是定義與宣告的本質:定義時系統會為定義的變數分配空間,而宣告時,不會分配空間。
同時在程式中,宣告可以有多次。(c中)正如在程式中同時「定義」兩個相同名字的全域性變數時,編譯通過,但初始化時缺失敗了,出現錯誤,顯示重新定義多重初始化。說明未初始化時編譯器認定第二個「定義」是宣告。
int a;//定義
int b=1;//也是定義
extern
int c; //這是宣告
extern
int d=10;//是定義
宣告有廣義上定義性宣告與引用性宣告,即前者就是「定義」。
總結是廣義上定義包含於宣告,但是並非所有的宣告都是定義。一般的情況下我們常常這樣敘述,把建立空間的宣告稱之為「定義」,而把不需要建立儲存空間的宣告稱之為「宣告」。故一般我們說宣告都是狹義上宣告。
1、變數在使用前就要被定義或者宣告。
2、在乙個程式中,變數只能定義一次,卻可以宣告多次。
3、定義分配儲存空間,而宣告不會。
宣告與定義
我們在程式設計中,時時刻刻都用到變數的定義和變數的宣告,可有些時候我們對這個概念不是很清楚,知道它是怎麼用,但卻不知是怎麼一會事,下面我就簡單的把他們的區別介紹如下 變數的宣告有兩種情況 1 一種是需要建立儲存空間的 定義 宣告 例如 int a在宣告的時候就已經建立了儲存空間。2 另一種是不需要建...
宣告與定義
什麼是宣告?什麼是定義?它們有什麼區別?定義 什麼是定義 所謂的定義就是 編譯器 建立乙個物件,為這個物件分配一塊記憶體並給它取上名字,這個名字就是我們經常所說的變數名或物件名。但是注意,這個名字一旦和這塊記憶體匹配起來 可以想象是這個名字嫁給了這塊空間 它們就同生共死 終身不離不棄,並且這塊記憶體...
宣告與定義
定義 所謂定義就是 編譯器 建立乙個物件,為這個物件分配一塊記憶體並給它取上乙個名字,這個名字就是我們經常所說的變數名或物件名。其特點是 這個名字一旦和這塊記憶體匹配起來就不分開,並且這塊記憶體的位置也不能改變。同時乙個變數或物件在一定區域中只能被定義一次。宣告 宣告有兩重含義。第一重含義 告訴編譯...