ローカル変数のスコープ(変数の使用可能な範囲)は そのローカル変数が宣言された{}(ブロック)内となります

複数のローカル変数のスコープ(変数宣言により作製された変数の使用可能な範囲)を考察してみましょう。

マックス「次のプログラムは~


むふふ


int a;

int b;

int c;


はmain関数のブロック{}内で変数宣言されているので


変数

a

b

c


main関数のローカル変数だ(^_-)-☆


いやっほ~う


はははあ 簡単だなあ~~」


#include <iostream>


using namespace std;


int main(){


int a;

int b;

int c;

for(a=1;a<3;a++)

{

for(b=1;b<4;b++)

{

for(c=1;c<5;c++)

{

cout <<c<< "をとりこみました。\n";

}

}

}


return 0;


}



ソーラー 「そうなんです。


int a;

int b;

int c;


はmain関数のブロック{}内で変数宣言されているので


変数a、b、cは


グローバル変数でなく


ローカル変数なんです😊


ところで


ローカル変数宣言


int a;

int b;

int c;


によって作成された


ローカル変数a

ローカル変数b

ローカル変数c


のスコープ(変数の使用可能な範囲)は


どこからどこまでなのでしょうか?


ローカル変数は


ローカル変数が宣言されたブロック{}内が


スコープ(変数の使用可能な範囲)となります


ですので


ローカル変数a

ローカル変数b

ローカル変数c


のスコープ(変数の使用可能な範囲)は


main関数のブロック{}内の


👉と👈で示された範囲が


スコープ(変数の使用可能な範囲)


となります。」



#include <iostream>


using namespace std;


int main(){


int a;👉

int b;👉

int c;👉

for(a=1;a<3;a++)

{

for(b=1;b<4;b++)

{

for(c=1;c<5;c++)

{

cout <<c<< "をとりこみました。\n";

}

}

}

return 0;👈👈👈

}


ソーラー「


このプログラムでは


main関数のブロック{}内で


for(a=1;a<3;a++)

for(b=1;b<4;b++)

for(c=1;c<5;c++)


が記述されている前に


先に


ローカル変数宣言


int a;

int b;

int c;


が行われています


ですので


変数a

変数b

変数c


が変数宣言されていないので


for(a=1;a<3;a++)

for(b=1;b<4;b++)

for(c=1;c<5;c++)

の中の

a

b

c


変数として機能しないということはないんですね。


for(a=1;a<3;a++)

for(b=1;b<4;b++)

for(c=1;c<5;c++)



事前に

変数a

変数b

変数c


が変数宣言されて作製されていないと


ビルド実行結果


識別子 "a" が定義されていません

識別子 "b" が定義されていません

識別子 "c" が定義されていません


と表示され使えないのです」


  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る