今日の人気記事

  1. サンプルプログラム集
  2. 入力した2つの数値を交換する
  3. 文字 - char型
  4. 乱数 - 0〜1のランダムな数値を出力
  5. for文 - 1つ飛ばしの繰り返し処理を実行する(奇数・偶数)

スコープ - グローバル変数とローカル変数

当ページのリンクには広告が含まれています。

スポンサーリンク

ここでは変数の「スコープ」を紹介します。

スコープ

変数は宣言した場所によって、有効な(使用できる)範囲が異なります。この変数が有効である範囲のことを「スコープ」といいます。

グローバル変数とローカル変数

スコープがプログラム全体である変数を「グローバル変数」といい、変数を宣言したブロック内だけで利用できる変数を「ローカル変数」といいます。

ブロックとは「{」「}」に限られた場所のことです。

例えば、main関数では

int main(void)
{
 /* ここがブロック */
} 

になります。

ローカル変数は変数を宣言したブロック内でのみ利用できる変数なので、main関数で宣言した変数は別の関数で利用することはできません。

実際にサンプルで「グローバル変数」と「ローカル変数」の違いをみてみましょう。

#include <stdio.h>

/* グローバル変数 */
int global;

void func()
{
  /* ローカル変数 */
  int local;
}

int main(void)
{
  /* ローカル変数 */
  int local;

  return 0;
}

グローバル変数「global」はどこでも利用できるので、関数の外でも、func関数とmain関数でも利用可能です。

ローカル変数「local」はブロック内でのみ利用可能なので、func関数で宣言したローカル変数は func関数内でのみ、main関数で宣言したローカル変数は main関数内でのみ利用することができます。

スコープの異なる2つの変数は同じ名前(ここでは「local」)でも別の変数になります。

ローカル変数とは異なり、グローバル変数はどこでも利用できるので同名の変数を2つ宣言することはできません。

基本構文 の人気記事

  1. printf関数の変換指定子
  2. 条件演算子(3項演算子)「? :」
  3. while文 - 繰り返し処理
  4. 配列の要素を出力(表示)する
  5. #include <stdio.h> と printf 関数 - プログラムの基本
  6. 変数の値を出力 - printf 関数
  7. 四則演算 - 算術演算子
  8. 数値の桁揃え
  9. キーボードから入力した文字/文字列を配列に
  10. コンパイルと実行

関連記事(一部広告含む)