ローカル変数、グローバル変数、および静的変数の関係.

972 ワード

ここでは,局所変数とグローバル変数と静的変数の関係を簡単に述べる.
まず、グローバル変数は静的記憶領域に格納される.
ローカル変数はダイナミックストレージ領域に格納され、スタックに格納されます.
静的変数タイプ説明子はstaticです.
静的変数は静的記憶方式に属し、その記憶空間はメモリ内の静的データ領域(静的記憶領域内に記憶手段を割り当てる)であり、この領域内のデータはプログラムの実行期間全体にわたってこれらの記憶空間を占有し続け(プログラムの実行期間全体にわたって解放されない)、メモリアドレスが不変であると考えられてもよい.プログラム全体の実行が終了するまで(逆にauto自動変数、すなわち動的ローカル変数は、動的ストレージカテゴリに属し、動的ストレージ空間を占め、関数呼び出しが終了すると解放される).静的変数は、プログラムの実行中に常に存在するが、その役割ドメイン以外では使用できない.
また,静的記憶方式に属する量が必ずしも静的変数であるとは限らない.例えば、外部変数は静的記憶方式に属するが、必ずしも静的変数ではなく、staticによって定義されてから静的外部変数、または静的グローバル変数と呼ばれる必要がある.
すべてのグローバル変数は静的変数ですが、ローカル変数は定義時にタイプ修飾子staticを付けるだけで、ローカル静的変数になります.
静的変数は、任意の申請可能な場所で申請することができ、申請が成功すると、他の同じ申請を受け入れなくなります.
静的変数は値を変えることができないというわけではなく,値を変えることができない量を定数と呼ぶ.値は可変であり、最新の値が保持されます.静的というのは、関数の呼び出しや終了に伴って変化しないからです.すなわち,前回関数を呼び出したとき,静的変数に値を付与すると,次の関数呼び出しのとき,この値は変わらない.
また、
new,malloc