Cプログラミング · 1 min read · Nov 18, 2025
Linux Cプログラミングチュートリアル 第23部 - 構造体

これまでのCプログラミングチュートリアルシリーズでは、変数から関数、さらにはポインタに至るまで、いくつかの側面について議論してきました。しかし、これは表面をなぞるようなものであり、Cプログラミング言語には他にも多くの重要な概念があります。
今日は、このチュートリアルで、構造体という概念について説明します。
Cプログラミング言語における構造体
構造体の宣言方法は次のとおりです:
struct TAG {
*変数宣言*
*変数宣言*
*...*
*...*
*...*
};TAGは、この構造体に付けたい任意の名前、例えばemp_detailsにすることができます。
変数はCプログラム内で値を格納するために使用されることは、今や常識であるはずです。これまで、1つまたは複数の変数を使用したプログラム/コードを見てきましたが、複数の変数が一緒にグループ化されるのを見たことはありません。はい、それは可能であり、構造体が本質的に行うことです。
あなたが書くコードが会社の従業員の詳細の管理に関わる場合を想像してみてください。新しい従業員が参加するたびに、プログラムにはその従業員の名前、年齢、職位、部門が与えられます。したがって、この場合、従業員に関連するすべての情報が単一の単位として扱われるようにコードを書くことが理想的です。
このようにコードを書くための1つのオプションは、すべての従業員関連情報をグループ化する構造体を作成することです。必要なのは、その構造体のインスタンス(またはその構造体型の変数)を作成し、新しい従業員に関連するすべての詳細を入力することです。
以下は、構造体型変数(この場合はa、b、c)を作成するいくつかの方法です:
struct emp_details {
*変数宣言*
*変数宣言*
*...*
*...*
*...*
}a, b, c;struct emp_details a;
struct emp_details b;
struct emp_details c;理論はこれくらいにして、わかりやすい例を見てみましょう。あなたのチームが2人のメンバーで構成されていて、Cでコーディングしたいプログラムを通じて彼らの詳細をコンピュータに保存したいとします。以下のコードは、構造体がその場合にどのように役立つかの基本的なアイデアを提供します:
#include
struct emp_details {
int emp_code;
int emp_age;
};
int main()
{
struct emp_details employee[2];
printf("\n 最初のメンバーのコードと年齢を入力してください\n");
scanf("%d", &employee[0].emp_code);
scanf("%d", &employee[0].emp_age);
printf("\n 2番目のメンバーのコードと年齢を入力してください\n");
scanf("%d", &employee[1].emp_code);
scanf("%d", &employee[1].emp_age);
for(int i=0; i<2; i++)
{
printf("\n メンバー %d のコードと年齢は: %d と %d です\n", i+1, employee[i].emp_code, employee[i].emp_age);
}
return 0;
} このコードでは、最初に’emp_details’という名前の構造体を宣言し、’emp_code’と’emp_age’をその2つのメンバー変数として定義しました。次に’main’関数内で、この構造体の2つのオブジェクトを配列の形で定義しました。その後、ユーザーからの入力を受け取ることで、これらのオブジェクトに対応するメンバー変数を入力しました。最後に、プログラムはこれらの値をユーザーに出力します。
プログラムを実行したときの出力は次のとおりです:
最初のメンバーのコードと年齢を入力してください
105
27
2番目のメンバーのコードと年齢を入力してください
110
32
メンバー 1 のコードと年齢は: 105 と 27 です
メンバー 2 のコードと年齢は: 110 と 32 です構造体ユニットの一部である変数は、任意の型にすることができます。異なる構造体のオブジェクト/インスタンスを構造体の一部として持つこともできます。これらすべてとさらに多くのことを、次回の構造体に関するチュートリアルで学びますので、お楽しみに。
結論
このチュートリアルでは、Cプログラミング言語における構造体の基本に焦点を当てました。構造体を宣言する方法、次にそれに対するオブジェクトまたはインスタンスを定義する方法、そして最後に構造体変数にアクセスする方法を学びました。今後のチュートリアルでは、さらに深く掘り下げて構造体について学んでいきます。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。