グローバル変数ってなに?!
はじめに
この記事では私が学習していることをノート代わりに投稿しているものです。
私が学習していて「ドウイウコト?」と思ったことを皆さんに分かりやすく理解してもらえるように書いています。
少しでもこの記事で知識を付けることができたらうれしいです。
グローバル変数
グローバル変数は変数の中で、最も広い範囲で利用できる変数のことです。
プログラムの中には数多くの変数が定義されますが、グローバル変数はプログラムの冒頭に定義されることが多いです。
#include <stdio.h>
int num = 100;//グローバル変数numを定義
output(int num1){//変数numを変数num1として受け入れ、関数outputの定義
printf("%d\n", num1);
}
output2(int num2){//変数numを変数num2として受け入れ、関数output2の定義
num2 = num2 ;
num = num + 10;
printf("%d\n", num2);//(出力結果:101)
printf("%d\n", num);//グローバル変数numの値を出力(出力結果:110)
}
output3(int num3){//変数numを変数num3として受け入れ、関数output2の定義
printf("%d\n", num3);//グローバル変数numの値を出力(出力結果:110)
}
int main(void){
output(num);//関数outputの引数にグローバル変数「num」を引き渡し、実行
output2(num);//関数output2の引数にグローバル変数「num」を引き渡し、実行
output3(num);//関数output3の引数にグローバル変数「num」を引き渡し、実行
}
上記のように関数 int main(void)内で定義されていない変数 numを引き渡すことができます。
それは関数外で定義されていて、かつ他の関数内で定義されていないから利用できます。
またグローバル変数は上記のように関数 outputと関数 output2、関数 output3の3つの関数から呼び出すことができますが、グローバル変数を呼び出した関数内の処理によってグローバル変数の値が変わると上書きされ、値が変わります。
最初は int num = 100;と定義されているように、グローバル変数 numの値は100です。
しかし関数 output2の処理でnum = num + 10;とあるように変数 numが上書きされ、110になっています。
そのため関数 output3の処理で変数 num3(実質num)を出力すると、110が出力され上書きされていることが分かります。
まとめ
グローバル変数は複数の関数から呼び出されることが可能な変数。
呼び出された関数内の処理によって、グローバル変数の値が変わった場合は上書きされ値が変わる。
簡単な説明でしたが、理解していただけましたでしょうか?
質問や訂正などありましたらどんどんコメントください!