サイタプログラミングスクールC言語プログラミング入門講座 神奈川 楽しめるC言語セミナー レッスンノート 構造体の配列

構造体の配列

C言語プログラミング入門講座のレッスンノート

レッスンノートって?レッスンノートって?

5/24のレッスン内容は、以下の通りです。

 ・ 構造体の配列
 ・ 2次元配列
 ・ 構造体を指すポインタ

□ 構造体の配列

配列の概念説明の際に、「同じ型を持つ複数の変数を、ひとまとめに管理できるデータ」と記しました。

実際はこれは正確ではなく、配列は「同じ型を持つ複数の『データ』を、ひとまとめに管理できるデータ」なのです。

変数をデータと言い直したのは、構造体の配列を使うこともできるからなのです。

 [例1]
 struct A {
  int i;
  double d;
 };

 struct A st[10]; // 構造体A型の要素を10個持つ配列stの宣言

この場合、要素にアクセスする場合は「stの何番目の要素のメンバ」のように指定します。例えば

 st[6].d // stの6番目の要素のメンバd

のようになります。

更に、構造体のメンバに配列を持たせることができると以前お話ししましたね。

 [例2]
 struct A {
  int i;
  int x[5];
 };

 struct A st[10]; // 構造体A型の要素を10個持つ配列stの宣言

この場合、例えば「stの8番目の要素の配列メンバxの2番目の要素にアクセスする」ことを示した

 st[8].x[2]

のように記します。


□ 2次元配列

2次元配列についても、今回触れました。

これは、見た目上で行列を扱うプログラムを作成する場合に使うものです。宣言のしかたは

 型名 配列名[行の要素数][列の要素数];

のようになります。


□ 構造体を指すポインタ

複数のデータを連鎖させて管理する場合、一般的には

 ・ 配列(物理的につなげる)
 ・ リスト構造(論理的につなげる)

のいずれかを用います。

但し、配列の場合は要素の挿入・削除の場合に面倒なケースがあります。この場合、リスト構造を使うことになります。

リスト構造を使うとなると、1つ1つの要素は

 ・ その要素が持つデータ
 ・ 次の要素を指すポインタ

の、最低2個の情報を持つ必要があります。これを実現できるデータは、構造体です。つまり、各要素が構造体となるわけです。

そして、その構造体の要素をポインタを使って指せなければなりませんね。ということで、構造体を指すポインタを理解する必要があります。

次回、このあたりをさらに詳しく説明します。
新着レッスンノート

8/13 のレッスン内容は、以下の通りです。  ・ コンピュータの基礎理論   - 10進数と2進数   - ビットとバイト   - コンピュータにおける負の表現  ・ C言語の文法   - 整数型 詳細は、レッスン中に別途お渡ししたノートを参照してください。 □ ...

8/13のレッスン内容は、以下の通りです。  ・ ランキング画面の表示処理 今回の詳細は、レッスン中にお渡ししたノートおよびノートPCで編集したソースコードを参照してください。 □ ランキング画面の表示処理 引き続き、ランキング画面を表示させる処理を実装しました。 ...

8/13 の体験レッスンの内容は、以下の通りです。  ・ ガイダンス・現状確認  ・ プログラミングとは  ・ プログラム実行までの流れ  ・ プログラミング言語の種類  ・ プログラミングに必要なスキル □ ガイダンス・現状確認 体験レッスンの冒頭で、ガイダンスを実...

8/12のレッスン内容は、以下の通りです。  ・ クイックソートのアルゴリズム作成・実装 詳細は、レッスン中に別途お渡ししたノートや別途メッセージに添付したソースコードも参照してください □ クイックソートのアルゴリズム作成・実装 クイックソートのアルゴリズム作成が難し...

8/12のレッスン内容は、以下の通りです。  ・ 集計データの整理プログラム作成 当面の間、詳細はレッスン中にお渡ししたノートやノートPCに保存した内容を参照してください。 □ 集計データの整理プログラム作成 引き続き、  ・ 集計データを自動で整理するプログラム...

レッスンノート ページ先頭へ