プログラム言語 II TOP

関数(5)
外部変数

例題6.5



1. 有効範囲(scope)
変数を使うことができる範囲を,その変数の有効範囲と呼びます。

局所変数の有効範囲は,宣言を含む関数の中になります。関数(3)の例をもう一度示します。

 

関数 g でも,a という名前の変数を宣言すると,

 

となり,関数 f の変数 a と関数 g の変数 a は,同じ名前ですが,別の変数となります。


2. 外部変数(external variable)
変数を関数の外で宣言すると,その宣言から後にある関数で使うことができるようになります。このような変数を外部変数と呼びます。

 

関数 g でも関数 h でも同じ外部変数 a を使うことができます。つまり,関数 g と h の間で,外部変数 a を使ってデータのやり取りができることになります。

ただし,外部変数 a の宣言よりも,前にある関数では使うことができません。

 

関数 f は, a の有効範囲に含まれないので,a を使うことができません。

なお外部変数は静的変数となります。


外部変数 a の有効範囲に含まれる関数で,局所変数 a を宣言する,つまり,外部変数 a の有効範囲と局所変数 a の有効範囲が重なると,

 

となって,関数 h では,変数 a は,そこで宣言した局所変数 a のことになります(外部変数 a を使うことができない)。

なお,関数 h の後にある関数 k では,変数 a は,外部変数 a のことになります。


3. 例題6.5
これも再帰関数の例です。講義では,再帰呼出しを終了する 条件を少し変更したものを取り上げます。


4. 演習
例題6.1のプログラムを,引数を使わずに外部変数を用いたものに書き換えなさい。


プログラム言語 II TOP