1. 程式人生 > >static變數與static的用法

static變數與static的用法

1static修飾區域性變數

C函式中變數分為區域性變數與全域性變數;全域性變數是在函式外申請的變數,其儲存在全域性資料區,其生命週期是整個程式執行的週期,區域性變數是在函式中申請的變數 通常情況下儲存區域是堆疊,變數是在進入函式時在堆疊中申請的,函式退出後變數將會被釋放,其生命週期是函式執行的時間,再次進入函式時必須重新申請,重新初始化。使用static修飾區域性變數後區域性區域性變數將變為區域性靜態變數,儲存區域變成全域性靜態資料區,生命週期是整個程式的執行週期,區域性靜態變數在第一次進入函式時初始化,函式推出時其不會被釋放,但是其作用域仍然是函式區域,退出函式後將不能使用該變數,再次進入函式後可以繼續使用該靜態區域性變數,且其會繼續保留之前的值。

2 static修飾全域性變數

全域性變數本來的儲存區域就是全域性資料區,其生命週期是整個程式執行的週期,使用static修飾後變成靜態全域性變數,但是並不影響其儲存區域與生命週期,但是全域性變數與靜態全域性變數的作用於是不一樣的,全域性變數可以在同一個源程式的其他檔案中訪問,但是使用static修飾後的靜態全域性變數不能在其他檔案中訪問,只能在當前檔案訪問。

3 static修飾函式

與修飾全域性變數類似,沒有使用static修飾的函式,可以在同一源程式的其他檔案中訪問,但是使用static修飾後函式,稱之為靜態函式,將不能在其他檔案中訪問,只能在當前檔案訪問。