1)設定全域性變數,增加了函式間資料聯絡的渠道
2)建議不在必要時不要使用全域性變數
a、全域性變數在程式執行的全部過程中都占用儲存單元。
b、使用全域性變數降低了函式的通用性,因為函式執行時要依賴其所在的外部變數。如果將函式從乙個檔案移動到另乙個檔案,還需要將相關的外部變數一起移過去,若外部變數與其他檔案的變數重名,就會出現問題。
c、過多的使用全域性變數,會降低程式的清晰性
d、同乙個原始檔中,外部變數與區域性變數重名時,則在區域性變數的作用域範圍內,外部變數被「遮蔽」
函式中的區域性變數,如不專門宣告為static,都是動態分配儲存空間的。
int f(int a)
auto可以省略,不寫預設為auto
有時候希望在函式中的區域性變數的值在函式呼叫結束後不消失,即其占用的儲存單元不釋放,用關鍵字static來宣告。
對靜態區域性變數的說明:
1)靜態區域性變數屬於靜態儲存類別,在靜態儲存區分配儲存單元,在整個執行期間都不釋放。
2)定義區域性變數時不賦初值的話,對於靜態區域性變數來說,編譯時自動賦初值0(對於數值型變數)或空字元(對字元變數)
3)雖然靜態區域性變數在函式呼叫結束後仍然存在,但其他函式是不能引用它。
說明:1)只有區域性自動變數和形式引數可以作為暫存器變數,其他變數不行。
2)區域性靜態變數不能定義為暫存器變數。
外部變數(即全域性變數)是在函式外部定義的,它的作用域是從變數的定義處開始到檔案末尾。
1)在乙個檔案外宣告外部變數
如果外部變數的定義不在檔案的開頭,其有效的作用域範圍就是從定義處到檔案末尾。如果想在其定義點之前引用該外部變數,那麼需要用extern對該變數做「外部變數宣告」。
2)在多檔案的程式中宣告外部變數
如果在多個檔案中共用到乙個外部變數,那麼在乙個檔案中定義外部變數,而在其他檔案中用extern對其宣告。
有時程式設計中希望某外部變數只限於本檔案引用,而不能被其他檔案引用,這時可以在定義外部變數時加乙個static宣告
C語言 變數
整形變數的定義 有符號 int a int a 有符號整形 範圍 0 2 32 long int a long a 有符號長整形 範圍 0 2 32 short ing a short a 有符號短整型 範圍 0 2 16 無符號unsigned int a unsigned a 無符號整形 範圍 ...
《C語言變數》
我先舉乙個例子,如果我有乙個倉庫,我想把一些東西放進去,比如蘋果 西瓜等等。1 首先,我是不是應該要知道我要放的東西體積多大,還有就是 需要找多大的空間能放得下它。計算機的儲存空間就相當於這裡的倉庫。2 對倉庫來說它並不知道是蘋果還是西瓜,它只知道存放的是體積不一樣大的物體,因為名字是我們人類命名的...
c語言變數
第四次課 變數 一 變數的定義 變數的概念 值可以發生改變的量 語法 型別名 變數名,變數名,變數名 型別名 變數名 初值,變數名 初值 char a,b,c int e char a 0,b 0,c 0 char a 0 unsigned char e 0 int height 170 int w...