ここでは変数の「スコープ」を紹介します。
スコープ
変数は宣言した場所によって、有効な(使用できる)範囲が異なります。この変数が有効である範囲のことを「スコープ」といいます。
グローバル変数とローカル変数
スコープがプログラム全体である変数を「グローバル変数」といい、変数を宣言したブロック内だけで利用できる変数を「ローカル変数」といいます。
ブロックとは「{」「}」に限られた場所のことです。
例えば、main関数では
になります。
ローカル変数は変数を宣言したブロック内でのみ利用できる変数なので、main関数で宣言した変数は別の関数で利用することはできません。
実際にサンプルで「グローバル変数」と「ローカル変数」の違いをみてみましょう。
グローバル変数「global」はどこでも利用できるので、関数の外でも、func関数とmain関数でも利用可能です。
ローカル変数「local」はブロック内でのみ利用可能なので、func関数で宣言したローカル変数は func関数内でのみ、main関数で宣言したローカル変数は main関数内でのみ利用することができます。
スコープの異なる2つの変数は同じ名前(ここでは「local」)でも別の変数になります。
ローカル変数とは異なり、グローバル変数はどこでも利用できるので同名の変数を2つ宣言することはできません。
C言語の基本構文についてはこちらをご覧ください。
基本構文 の人気記事
- printf関数の変換指定子
- エスケープシーケンス - 特殊文字
- 条件演算子(3項演算子)「? :」
- コンパイルと実行
- 浮動小数点数型(float型 double型)の最大値と最小値 - float.h
- while文 - 繰り返し処理
- 配列の要素を出力(表示)する
- continue文 - ループをスキップ
- 変数 - 予約語
- else if文 - 複数の条件式 - 条件分岐