C言語の変数について書いてみる

この記事には自動変数、static変数、グローバル変数について書いていこうと思います
プログラムに置いて変数は3つのジャンルに分けることが出来ます。

1,自動変数(ローカル変数)

自動変数とは関数の中で宣言された変数のことを指します。

関数の中で宣言するので他の関数で同じ名前で宣言しても使うことが可能です。Local(地域) は今回の場合、関数の事を言っているので関数(Local)のなかで宣言された変数という意味なんですね(自己分析)

また、ローカル変数は値が入っていられる期間はその関数の処理が終わるまでとなっています。なので関数の中の処理が終わった瞬間、ローカル変数の中身は無くなってしまうのです。
そして、それぞれの関数に使えることから初期化は毎回しなければいけません。まあ宣言されたら絶対初期化すると思って入れば大丈夫だと思います。

int main( ) {
   int a = 0;  //ローカル変数
}
int main_d( ) {
   int a = 0;  //ローカル変数
} 


2,static変数
この変数も関数の中で宣言された変数のことを指します。しかし、ローカル変数とは違った働きをします。
この変数は変数宣言する行の前に static という文字を打ち込みます。そのことによりstatic変数に変身することが出来ます

int main( ) {
    static int a; //これでstatic変数になりました
}

また、static変数は値が入っていられる期間はプログラムが終わるまでとなっています。そのことにより、「関数の処理は終わった。でもこの変数の中身は残しておきたい!」と言った場合に使うことができます。
そして、初期化はしなくても大丈夫です。プログラム側で勝手にしてくれるからです。

int main( ) {
    static int a;  //これでaには0が入っています
}
int main_d( ) {
    static int a; //それぞれの関数で呼ぶこともOK!
}


3, グローバル変数
この変数は関数の外で宣言された変数を指します。関数の外で宣言されることからどの関数にも共有された変数になります。Global(世界どこでも) 今回の場合はプログラムという世界でどこでも使うからグローバル変数なんですね(再び自己解析)
またグローバルなだけあって、値が入っていられる期間はプログラムが終わるまでとなっています。また初期化もしなくて大丈夫です。コンピュータ側が自動で行ってくれます。

#include <stdio.h>

int a;  //これでグローバル変数になりました
int main( ) {
    a = 1;
}

まとめ

今回は変数の種類について学んだのでまとめました。ブログにソースコードを書くのも初めてでいろいろ検索して新しい発見などがあって面白かったです。
見てくれてありがとうございました。また違う記事で会いましょう。バイバイ