在C語言中,變數除了有類型之分,還有四種儲存類別:自動儲存變數,靜態儲存變數,外部儲存變數,寄存器儲存變數。
(1).自動儲存變數
1.性質:
--範圍的局部性,其範圍為變數定義所在的模組(一對花括弧圍起來的部分)內或函數內。
--生存期的暫時性,其生存期為該變數定義所在的函數或模組的執行循環。即一旦進入該函數,c就自動為該變數建立儲存區,而一旦退出該函數,c就自動收回此儲存區。
--未初始化的變數其值不確定,是無意義的。
(2)定義 關鍵字auto(也可無),auto int i,j;
舉例:
main()
{
int i=100,k=80;
printf("i=%d\n",i);
{
int i=200;
printf("i=%d k=%d\n",i,k++);
}
printf("i=%d k=%d",i,k);
getch();
}
(2)靜態儲存變數
1.定義: static 資料類型 變數名=初值;
2.種類: 全域和局部兩種。
-靜態局部儲存變數,僅能在所定義的模組記憶體使用量,與AUTO變數不同,它可以保持原值不便:
count_up()
{
static int number=25;
number+=25;
return(number);
}
-靜態全域變數,
.性質:範圍-整個程式。生存期的永久性,未初始化的靜態變數值為0;
3.靜態變數和自動儲存變數的區別。
main()
{
count_up();
count_up();
printf("\n");
add();
add();
getch();
}
count_up()
{
static int num0=0;
num0+=25;
printf("%d\t",num0);
}
add()
{
auto int num1=0;
num1+=25;
printf("%d\t",num1);
}
運行結果:
25 50
25 25
(3)外部儲存變數
1.用途 用於把大程式分隔若干單元(檔案)而開發的場合。說明外部儲存變數使用關鍵字extern。
(4)寄存器儲存變數
關鍵字:register 如:register int e;
寄存器儲存變數值儲存在CPU的寄存器中,設定這種變數主要是為了提高操作速度。他們常用於迴圈控制。使用SI,DI寄存器。如果定義寄存器變數超過兩個,則多餘的按照自動儲存變數對待。
閱讀全文
類別:c語言學習 查看評論