配列:同じタイプのデータで構成されるシーケンスであり、順序付けられたコレクションです。(メモリ内の分布は下位アドレスから上位アドレスへと1つずつ格納されるため、内部のコンテンツが順序付けられるのではなく、順序付けられたセットになります)
1. 1次元配列の定義:
类型说明符 数组名[常量表达式]
PS:メモリ内の1次元配列のストレージ。(オペレーティングシステムを含むすべてのプログラムは、実行時にハードディスクで実行するのではなく、メモリにロードする必要があります。ハードディスクで実行することはできません。CPUはメモリからデータを調整し、メモリはハードディスクからデータをフェッチします。これは動的なプロセスであるため、CPUで何かを実行し、メモリで実行する必要があります。プログラムは実行されるとすぐにメモリに読み込まれます。たとえば、パスワードを盗む場合は、彼のコンパイルのプロセス全体がメモリ内で実行されているため、メモリから開始する必要があります)
低いアドレス | 86 | マーク[0] |
92 | マーク[1] | |
77 | マーク[2] | |
52 | マーク[3] | |
..。 | ..。 | |
高いアドレス | 94 | マーク[99] |
配列名は、実際には配列の最初の要素の最初のアドレスです。
2.2次元配列定義の一般的な形式は次のとおりです。
类型说明符 数组名 [常量表达式] [常量表达式]
2次元配列は、概念的には2次元ですが、実際のハードウェアメモリは継続的にアドレス指定されます。つまり、メモリセルは1次元の線形単位で配置されます。2次元配列を1次元メモリに格納する方法は2つあります。1つは、配列を行に配置する方法、つまり、1つの行を2番目の行に順番に配置する方法です。もう1つは、列に配置することです。つまり、1つの列を2番目の列に順番に配置します。C言語では、2次元配列が行に配置されます。
配列は、コンパイル時に占有するスペース(つまり、定数式)を説明する必要があります。割り当ては実行時に割り当てられます。
マクロ定義を使用して、文が実行されないようにコメントアウトします。
#if(0)
语句1;//语句1永远不会被编译,因为if后边是0,为假跳过。
#endif
3.プログラムをコンパイルして実行すると、通常の変数はスタック領域であるスタック領域に格納されます。静的な場合、通常の変数はデータ領域であるデータ領域に格納されます。定数や文字列などのデータ領域は通常変更できません。通常、データ領域にあります。
PS:あなたがどんな言語であっても、それは一般的に記憶の中でこのようです。私たちの記憶全体は主に4つの領域に分けられます:
1):CODE(コードエリア)
2):DATA(データ領域)(staticで定義された定数、文字列、変数を格納します)(この関数の終了によりデータ領域の特性が消えることはありません)(DATA領域はプログラム全体が他の領域を終了するときですリリースされます)
3):STACK(スタック領域)(プログラムを実行するために、彼はこの関数によって呼び出されたデータまたは変数をスタックにプッシュして実行し、関数が呼び出されるまで待機します。このスタックは解放されます。そうでない場合、メモリは十分ではありません)
4):HEAPエリア(STACKエリアがプログラム自体によって解放および生成されるように、HEAPエリアは異なりますが、HEAPエリアの割り当てサイズはプログラマーによって指定され、もちろん、その範囲を超えることはできません。 、)
これらの4つのパーティションを理解する。。。。。