在C語(yǔ)言中,static
關(guān)鍵字用于限制變量的作用范圍和生命周期
作用范圍:
static
用于局部變量時(shí),它的作用范圍僅限于定義它的函數(shù)內(nèi)部。這意味著在函數(shù)外部無(wú)法訪問(wèn)到這個(gè)變量。static
用于全局變量時(shí),它的作用范圍僅限于定義它的源文件內(nèi)部。這意味著在其他源文件中無(wú)法直接訪問(wèn)到這個(gè)變量。生命周期:
static
用于局部變量時(shí),它的生命周期從程序開(kāi)始執(zhí)行時(shí)開(kāi)始,直到程序結(jié)束時(shí)結(jié)束。這意味著在函數(shù)調(diào)用之間,static
局部變量的值會(huì)被保留。static
用于全局變量時(shí),它的生命周期與程序的生命周期相同。這意味著在整個(gè)程序運(yùn)行過(guò)程中,static
全局變量的值都會(huì)被保留。以下是一個(gè)使用static
關(guān)鍵字的示例:
#include<stdio.h>
// 靜態(tài)全局變量
static int global_var = 0;
void function() {
// 靜態(tài)局部變量
static int local_var = 0;
local_var++;
global_var++;
printf("Local variable: %d, Global variable: %d\n", local_var, global_var);
}
int main() {
for (int i = 0; i < 3; i++) {
function();
}
return 0;
}
輸出結(jié)果:
Local variable: 1, Global variable: 1
Local variable: 2, Global variable: 2
Local variable: 3, Global variable: 3
可以看到,local_var
在每次函數(shù)調(diào)用之間保持了其值,而global_var
在整個(gè)程序運(yùn)行過(guò)程中保持了其值。