變數定義時有3種情況:
1- 函式的開頭——只在函式內部有效。
2- 復合語句內——只在復合語句內才能引用。
for(int i=0;i<10;i++)
3- 函式外部定義——外部變數/全域性變數,能夠被本檔案的其他函式所公用。
c語言中,習慣上全域性變數將第乙個字母大寫
float max=0,min=0;
int main()
不在必要的時候,不要使用全域性變數,全域性變數有如下缺點;
耗記憶體可移植性變差
降低程式的可讀性
如果出現了全域性變數和區域性變數同名的情況下,在區域性變數的作用範圍內,全域性變數會被遮蔽。
按照變數的生存期(存在時間)來區分變數的話,可以分為靜態變數和自動變數。
記憶體中使用者的儲存空間使用情況是:
程式區存放程式
資料存放在靜態儲存區和動態儲存區。全域性變數均存放在靜態儲存區。區域性變數中有使用static宣告的變數是放在靜態儲存區的。其他的區域性變數和形參放在動態儲存區。
區域性變數的儲存類別:
- auto(若不額外宣告均為auto型別,動態分配記憶體)
- static(函式呼叫結束後,該變數保持原值,下次呼叫不會初始化。且該變數不能被其他函式引用)
- register(將經常需要訪問的區域性變數儲存在暫存器中,提高執行效率,現在計算機能夠自動將使用頻繁的資料放入暫存器中,所以無需指定)
全域性變數的儲存類別:
全域性變數的作用域是從定義處到檔案結尾。
如果想將作用於擴充套件為整個檔案,需要在其他位置加上extern,起到擴充套件作用。
如果想將作用域擴充套件為其他檔案,需要在其他檔案中該變數定義處加上extern。
如果不想讓該全域性變數被其他檔案使用,需要在前面加上static。
[1]: 《c語言程式設計》第四版 譚浩強
C語言變數型別
c語言變數型別 auto static external static external register auto 區域性變數 auto 變數是用堆疊 stack 方式占用儲存器空間,因此,當執行此區段是,系統會立即為這個變數分配儲存器空間,而程式執行完後,這個堆疊立即被系統收回 在大括號 內宣告...
C語言變數型別
c語言有豐富的資料型別和運算子,因此計算能力非常強大,計算過程中使用的值一般用變數來儲存。變數也是有分型別的,不同型別的變數有不同的儲存型別 不同的生命週期 不同的作用域,c語言也提供了一些關鍵字來設定變數的屬性 比如設定儲存型別 生命週期 1 變數的作用域 c語言根據變數作用域的不同,將變數分為區...
C語言變數型別
c 語言中常用的變數型別包括以下幾類 區域性變數 自動變數 外部變數 全域性變數 靜態變數和暫存器變數 暫存器變數不常用,因此不做整理 1 區域性變數 區域性變數也稱為自動變數,是在函式內或程式塊內定義的變數,是一種 臨時 的變數,隨著函式 或程式塊 的執行而生成,隨著函式 或程式塊 的退出而消失。...