C語言中的區域性靜態變數是什麼?


區域性靜態變數是一種變數,它的生命週期不會隨著宣告它的函式呼叫而結束。它會持續到整個程式的生命週期結束。所有函式呼叫都共享區域性靜態變數的同一份副本。

這些變數用於統計函式被呼叫的次數。靜態變數的預設值為0。而普通的區域性變數的範圍限定在定義它的程式碼塊內,在程式碼塊外不可見。

位於程式碼塊之外的全域性變數在程式結束前一直可見。

示例

以下是區域性變數的C程式:

 線上演示

#include<stdio.h>
main ( ){
   int a=40 ,b=30,sum; //local variables life is within the block
   printf ("sum=%d" ,a+b);
}

輸出

執行上述程式時,會產生以下輸出:

sum=70

示例

以下是全域性變數的C程式:

 線上演示

int c= 30; /* global area */
main ( ){
   int a = 10; //local area
   printf ("a=%d, c=%d", a,c);
   fun ( );
}
fun ( ){
   printf ("c=%d",c);
}

輸出

執行上述程式時,會產生以下輸出:

    a =10, c = 30

示例

以下是區域性靜態變數的C程式:

#include <stdio.h>
void fun(){
   static int x; //default value of static variable is 0
   printf("%d ", a);
   a = a + 1;
}
int main(){
   fun(); //local static variable whose lifetime doesn’t stop with a function
   call, where it is declared.
   fun();
   return 0;
}

輸出

執行上述程式時,會產生以下輸出:

0 1

更新於:2024年6月20日

5K+ 瀏覽量

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告