auの日記

プログラミング初心者の日記。(auはハンドルネームです)

C言語の静的変数

auです。
昨日は自動変数について書きました。
program-shoshinsya.hatenablog.com
今回は静的変数について書きたいと思います。

静的変数とは

静的変数とはプログラムの全体でずっと利用できる変数のことです。
要はグローバル変数のことです。
静的変素は関数の前(最初)に宣言します。
自動変数のときと同じプログラムで静的変数を使ってプログラムします。

#include <stdio.h>

int g = 8;  // 静的変数

int sub(int d, int e) {  // {}これがブロック1
    int f = d - e;
    return f;
}  // ブロック1

int main(void) {  // mainの{}ブロック2
    int a = 3;
    int c;
    int b = 2;
    
    c = sub(a, b);
    printf("c = %d\n", c);
    printf("g = %d\n", g);
    return 0; 
}  // ブロック2

// 実行結果
c = 1
g = 8

昨日はブロックの外だと使えなかった自動変数ですが、静的変数のように最初に宣言することによって利用することができました。
静的変数=グローバル変数