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
廣告