サンプルコードは全て合法な宣言を行っています。identifierが等しい変数が多くありますが、全て別scopeで宣言が行われ、プログラムは正常に終了します。また、これらのscopeはC++と同じような感覚で扱うことが可能です。
全ての変数はglobalかlocalなscopeに属しています。scopeは{}によって区切られ、それぞれのscopeごとに同じidentifierを持つ変数が存在してはなりません。scopeが異なる同じidentifierを持つ変数を宣言することは可能です。その場合、scope中の対象のidentifierが参照する値は、そのscopeで宣言されたものとなります。
Global Variables
global variableは、ソースコード中の{}の外側に宣言された変数です。これらの変数はコード中のどのfunction、process内でも使用することが出来ます。
int g=0;
gはglobal variableです。global variableはコンパイルと同時に宣言が行われ、main processが開始する前より存在しています。
global variableはプログラム開始から終了まで存在し続けます。
Local Variables
globalに属さない変数は全てlocal variableです。これらの変数は宣言されたscope内で使用することが出来ます。local variableはscope内でしか存在しません。つまり、scopeを抜けた後のlocal variableは参照することが出来ません。
Next: Tutorial 16. Other Data Types
Prev: Tutorial 14. Inheritance