構造体の宣言
CoddyのCジャーニー「論理と制御フロー」セクションの一部。レッスン 39/63。
struct とは何かを理解したところで、独自の構造体型を作成する方法を学びましょう。C で struct を宣言するには、カスタムデータ型の設計図を定義する特定の構文に従います。
structを宣言する基本構文は次のとおりです:
struct StructureName {
datatype member1;
datatype member2;
// ... その他のメンバー
};各部分の仕組みは次のとおりです。まず struct キーワードから始め、続けて構造体の名前を指定し、その後、中かっこの中にすべてのメンバー変数を列挙します。各メンバーは、データ型と名前を指定して、通常の変数と同じように宣言します。閉じ中かっこの後のセミコロンを忘れないでください!
たとえば、2D空間上の点を表す構造体を作成するには、次のようにします。
struct Point {
int x;
int y;
};この宣言は、x と y という2つの整数メンバーを含む、struct Point という新しいデータ型を作成します。宣言すると、この構造体型をプログラム全体で使用して、座標情報を整理された形で保持する変数を作成できます。
チャレンジ
簡単ライブラリシステム内の本を表す struct を定義する C プログラムを作成してください。プログラムでは次のことを行います。
- 次のメンバーを含む
Bookという名前のstructをDefineします。- 本の識別番号を格納する整数型の
id - 本のタイトルを格納する、サイズ 50 の文字配列
title - ページ数を格納する整数型の
pages - 本の価格を格納する
float型のprice
- 本の識別番号を格納する整数型の
- struct を定義した後、確認メッセージ
Book struct defined successfully!を出力します。 sizeof()を使用して、Bookstruct のサイズをバイト単位で、次の形式で出力します:Size of Book struct: [size] bytes- 各メンバーのサイズを個別に出力します。
Size of id: [size] bytesSize of title: [size] bytesSize of pages: [size] bytesSize of price: [size] bytes
このチャレンジでは、struct キーワードの適切な使用、適切なデータ型によるメンバー宣言、閉じ中かっこの後のセミコロンなど、struct 宣言構文に関する理解を確認します。また、sizeof() 演算子を使用して、C が struct メンバー用にメモリをどのように割り当てるかについても学びます。
正確なサイズの値はシステムのアーキテクチャによって異なる場合がありますが、プログラムが正常にコンパイルおよび実行されるには、struct の定義構文が正しくなければならないことに注意してください。
自分で試してみよう
#include <stdio.h>
int main() {
// TODO: ここにBook構造体を定義してください
// 確認メッセージを出力する
printf("Book struct defined successfully!\n");
// TODO: Book構造体とそのメンバーのサイズを出力してください
return 0;
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
論理と制御フローのすべてのレッスン
自分で練習してみよう: Cオンラインコンパイラ