底辺過ぎてちょっとビビる

26歳からIT業界にいるエンジニアが、まったく成長できてないことを確認するブログ。備忘録的に使いたいとも考えています。

未だにstaticの使い方がよくわからない

表題のとおりなのだけど、情けないことにstaticがいまいちよくわからないまま

ここまで来てしまった。

 

 

static変数ってなに?って聞かれてもきっと答えられない。

スコープの範囲でメモリから開放される変数はローカル変数で、

スコープから外れても値を確保し続けるものはグローバル変数で、

グローバル変数はヘッダーファイルなどに定義する。

 

じゃあstatic変数は?

ローカル風に変数定義しても、値が開放されない変数のこと?

 

#include <stdio.h>

 

void func(void){

    static int x = 3;

    x++;

   printf("x = %d\n",x);

}

 

int main(void){

    func();

    func();

}

 

 

こんな使い方でいいのかしら?

なるほど。