構造体変数の作成
CoddyのCジャーニー「Logic & Flow」セクションの一部 — レッスン 40/63。
struct 型を一度宣言すると、それを使用してデータを保持する実際の変数を作成できます。構造体変数の作成は、C言語における他の変数の宣言とまったく同じように機能します。つまり、データ型を指定し、その後に変数名を記述します。
構造体変数を作成するための構文は次のとおりです。
struct StructureName variableName;例えば、前回のレッスンの Point 構造体を使用すると:
struct Point p1;
struct Point p2;これにより、p1とp2という2つの変数が作成されます。これらは両方ともstruct Point型です。各変数は、構造体で定義されているxおよびyメンバの個別のコピーを保持します。
intやfloatのような組み込み型と同じように、必要な数だけ構造体変数を作成できます。各構造体変数は独立しており、そのメンバに異なる値を保持できます。一度作成すれば、これらの変数は座標データを整理された方法で格納する準備が整います。
チャレンジ
簡単異なる型の複数の構造体変数を作成する方法を示すCプログラムを作成してください。プログラムは以下の要件を満たす必要があります:
- 以下のメンバを持つ
Rectangleという名前のstructを定義します:- 整数型の
width - 整数型の
height
- 整数型の
- 以下のメンバを持つ
Studentという名前のstructを定義します:- 整数型の
id - サイズ30の文字配列
name - 浮動小数点型の
gpa
- 整数型の
- main関数内で、以下の構造体変数を作成します:
rect1およびrect2という名前の2つのRectangle変数student1、student2、およびstudent3という名前の3つのStudent変数
- 作成された各変数について、以下の正確な形式で確認メッセージを出力します:
Rectangle variable rect1 createdRectangle variable rect2 createdStudent variable student1 createdStudent variable student2 createdStudent variable student3 created
- 作成された構造体変数の総数を次の形式で出力します:
Total struct variables created: 5 - 各型のメモリ使用量を次の形式で出力します:
Memory per Rectangle: [size] bytesMemory per Student: [size] bytes
このチャレンジでは、複数の構造体型を定義し、それぞれの型の変数を複数作成する能力をテストします。各構造体変数は独立しており、独自のメモリ領域を持っています。これは、プログラム内で異なる種類のデータを整理するために構造体をどのように使用できるかを示しています。
チートシート
構造体変数を作成するには、他の変数を宣言するのと同じ構文を使用します:
struct StructureName variableName;複数の構造体変数を作成する例:
struct Point p1;
struct Point p2;各構造体変数は独立しており、構造体で定義されたすべてのメンバの個別のコピーを保持します。組み込み型と同様に、必要な数だけ構造体変数を作成できます。
自分で試してみよう
#include <stdio.h>
int main() {
// TODO: ここで構造体 Rectangle を定義してください
// TODO: ここで構造体 Student を定義してください
// TODO: ここで構造体変数を作成してください
// TODO: 作成された各変数に対して確認メッセージを出力してください
// TODO: 作成された構造体変数の総数を出力してください
// TODO: sizeof() を使用して、各構造体型のメモリ使用量を出力してください
return 0;
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。