初期化と代入の違いは何ですか?
- 初期化:宣言は新しいメモリ領域を描画しますときに、同時に変数への代入を宣言し、
- 割り当て:
保存方法変数:静的ストレージと動的ストレージ。
静的ストレージ:変数が定義され、プログラム全体を通して、メモリユニットの一定量を割り当て、専用メモリ部を初期化することができ、一度に複数回割り当て、静的記憶変数が初期化されていない、初期値が0で変わりません。
動的ストレージ:機能ユニットの宣言が着信引数にメモリを割り当てていない場合、プログラム実行中の任意のメモリ・セルを割り当て、使用後に解除され、そのような関数パラメータのパラメータの形態では、動的記憶装置であり、。機能が完了すると、メモリが解放される。動的記憶変数の初期化場合にメモリを割り当てるために、その後、初期値は乱数です。
ストレージの変数を宣言するには?
グローバル変数は静的グローバル変数およびグローバル変数、静的記憶装置を含む初期値が0でない、従ってない、静的ローカル変数は、動的ローカル変数は、動的記憶装置であり、スタティックメモリです。
プラス静的プレフィックスは、次のような静的記憶変数であり、
static int a = 0;
静的デフォルトの接頭辞なしのような動的記憶変数、である
int b = 1;
(それはグローバル変数であればそれほど静的なストレージです。)
メモリ、ストレージ容量の割り当て:
動的記憶領域:動的変数を格納するメモリ領域、すなわち記憶、そのような関数のパラメータ、無接頭プラス静的ローカル変数(すなわち、動的ローカル変数)として、関数はアドレスを返します
静的記憶領域:このようなグローバル変数、静的グローバル変数(動的なグローバル変数)などの静的ストレージモード、可変メモリの記憶領域。
プログラム領域:ストレージ・プログラム文。
変数のスコープ:ローカルおよびグローバル。
グローバル変数:すべての外部関数の定義では、すべての機能はデフォルトでは0時00分に初期化されていない、グローバル変数は静的記憶されている呼び出すことができます(主な機能を含む);.
ローカル変数:内部関数定義は、唯一の現在の機能には適用されない場合、初期化、静的ストレージ、または0の場合、もしランダム値と比較ダイナミックストレージ、。
静的なグローバル変数とグローバル変数の違いは?
- 彼らは、スタティックメモリは、ダイナミックメモリ変数は静的なグローバル変数は、現在のファイル、初期値0に適用され、主に異なるスコープ存在しないことに注意してください...。
- 異なる変数は、2つの同一の変数名がある場合は小さい値も初期関数スコープ0である間にexternグローバル変数は、ファイルの他のタイプに使用することができます;
静的ローカル変数(動的)ローカル変数の違いは?
同じスコープが、異なるメモリ放出期間を有する。動的ローカル変数関数の実行が終了した後、メモリが解放される。次のコール荘では、乱数の初期値を初期化します。
そして、プログラムメモリ全体で静的ローカル変数ではリリースされていない、または初期値の最後の値は0、次の呼び出しであります;