變數的儲存型別有4種,分別是static、external、register、auto,對於每一種儲存型別,他們都有相應的使用方式和特點,下面就分別對這四種儲存型別介紹一下:
1.static靜態型(可以修飾區域性變數、全域性變數、函式)
a.存放在靜態區,靜態區的資料未初始化時,由系統給該變數賦初值,初始值為0
b.限定作用域(修飾區域性變數限制在區域性範圍;修飾全域性變數限制在整個檔案)
c.修飾的變數只會被初始化一次,且每次使用的變數都是上一次運算後的值 d.宣告週期為從程式開始執行到結束為止
舉例:#include
void fun();
int main(int argc, const char *argv)
fun(); //a = 0
fun(); //a = 1
fun(); //a = 2
return 0;
void fun()
static int a;
printf("a:%d\n", a);
a++;
2.extern:外部引用型,
a.可以宣告乙個外部變數(不在本檔案中)
b.宣告的外部變數必須和使用外部變數的檔案處於同一目錄下,並一起編譯
舉例:extern.c:
#include
extern int a;
extern int b;
nt main(int argc, const char *argv)
printf("a:%d b:%d\n", a, b);
return 0;
test.c
int a = 4;
int b = 3;
3. auto:自動型變數:
a.存放在棧區,棧區資料在未初始化的情況下為隨機值;
b.隨著作用域的結束,棧會**變數的儲存空間;
c.auto只能修飾區域性變數
4. register:暫存器變數
a.宣告的變數是放在暫存器中的,但是暫存器數量有限,不容易申請到空間
b.如果申請不到就使用一般記憶體,同auto
變數的儲存型別
曾巨集安,華清遠見嵌入式學院 講師。我們在程式中會經常定義一些變數來儲存和處理資料。從本質上看,變數代表了一段可操作的記憶體,也可以認為變數是記憶體的符號化表示。當程式中需要使用記憶體時,可以定義某種型別的變數。此時編譯器根據變數的資料型別分配一定大小的記憶體空間。程式就可以通過變數名來訪問對應的記...
變數的儲存型別
儲存型別是從變數的存在時間 即生存期 來劃分變數。變數的儲存型別可分為靜態儲存方式和動態儲存方式。對於動態儲存變數,當程式執行到該變數處時才為其分配儲存空間,當程式執行到該變數所在作用域的結束處時自動收回為其分配的儲存空間,因此它的生存期為所在作用域。在程式開始就執行就為其分配儲存空間,直到程式結束...
變數的儲存型別
變數的儲存型別有兩種 動態和靜態,其中又有四種基本型別 auto,static,register,extern auto便是經常在函式中碰到的那些區域性變數,關鍵字auto可省略,定義register變數就是為了提高對資料的訪問速度,只有區域性自動變數或形參可以這麼定義,下面就static和exte...