static關(guān)鍵字對(duì)C語(yǔ)言變量的影響

小樊
82
2024-09-12 12:08:03

在C語(yǔ)言中,static關(guān)鍵字用于限制變量的作用范圍和生命周期

  1. 作用范圍:

    • 當(dāng)static用于局部變量時(shí),它的作用范圍僅限于定義它的函數(shù)內(nèi)部。這意味著在函數(shù)外部無(wú)法訪問(wèn)到這個(gè)變量。
    • 當(dāng)static用于全局變量時(shí),它的作用范圍僅限于定義它的源文件內(nèi)部。這意味著在其他源文件中無(wú)法直接訪問(wèn)到這個(gè)變量。
  2. 生命周期:

    • 當(dāng)static用于局部變量時(shí),它的生命周期從程序開(kāi)始執(zhí)行時(shí)開(kāi)始,直到程序結(jié)束時(shí)結(jié)束。這意味著在函數(shù)調(diào)用之間,static局部變量的值會(huì)被保留。
    • 當(dāng)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ò)程中保持了其值。

0