
【6日でできるC言語入門】構造体の演習プログラム
C言語の「構造体」は、複数の関連するデータをひとまとまりで管理するための重要な機能です。構造体を使いこなすことで、現実世界の「ひと・もの・データ」をプログラムで直感的に表現でき、複雑な処理もシンプルに記述できます。
ここでは「構造体の演習プログラム」として、基礎から実践まで役立つサンプルを3つ紹介し、それぞれのポイントや書き方を詳しく解説します。

1.基本の構造体プログラム
1.1. 個人データの管理
演習内容
1人の個人情報(名前・年齢・身長)を構造体でまとめ、内容を表示するプログラムを作成します。
プロジェクト/ファイル名: Lesson66_1/main.c
#include <stdio.h>
#include <string.h>
struct person {
char name[100];
int age;
double height;
};
int main(void) {
struct person p1;
strcpy(p1.name, "鈴木一郎");
p1.age = 25;
p1.height = 175.2;
printf("名前:%s 年齢:%d 身長:%.1fcm\n", p1.name, p1.age, p1.height);
return 0;
}実行結果
「SDLチェック」を「いいえ」にして、プログラムを実行します。
名前:鈴木一郎 年齢:25 身長:175.2cm1.2. ポイント解説
- 構造体の宣言・変数作成・メンバへのアクセス(.演算子)の基本を学べます。
- 文字列はstrcpyでコピーする。
2.構造体の配列プログラム
2.1. 複数データの管理
演習内容
複数人(3人分)のテスト点数を構造体配列で管理し、全員分のデータを表示するプログラムを作成します。
サンプルプログラム
プロジェクト/ファイル名: Lesson66_2/main.c
#include <stdio.h>
typedef struct {
char name[100];
int score;
} STUDENT;
int main(void) {
STUDENT students[3] = {
{ "山田太郎", 85 },
{ "田中花子", 92 },
{ "佐藤次郎", 78 }
};
for (int i = 0; i < 3; i++) {
printf("名前:%s 点数:%d\n", students[i].name, students[i].score);
}
return 0;
}実行結果
名前:山田太郎 点数:85
名前:田中花子 点数:92
名前:佐藤次郎 点数:782.2. ポイント解説
- 構造体配列により、同じ種類のデータを複数まとめて管理できる。
- for文と組み合わせて一括処理が可能。
3.構造体ポインタを使った関数処理
3.1. 関数でデータを書き換える
演習内容
構造体ポインタを使い、関数の中でデータを書き換えるプログラムを作成します。
プロジェクト/ファイル名: Lesson66_3/main.c
#include <stdio.h>
#include <string.h>
typedef struct {
char name[100];
int stock;
} ITEM;
void updateStock(ITEM* item, int new_stock) {
item->stock = new_stock;
}
int main(void) {
ITEM apple;
strcpy(apple.name, "リンゴ");
apple.stock = 50;
updateStock(&apple, 100);
printf("商品名:%s 在庫数:%d\n", apple.name, apple.stock);
return 0;
}実行結果
「SDLチェック」を「いいえ」にして、プログラムを実行します。
商品名:リンゴ 在庫数:1003.2. ポイント解説
- 構造体ポインタ(->演算子)を使えば、関数内で元のデータを直接変更できる。
- データの柔軟な操作や管理に役立つ。
まとめ
- 構造体は、複数の関連データをまとめて管理するための基本技術
- 配列やポインタ・関数との連携により、現実的な課題を柔軟にプログラムできる
- 練習を通して、より実践的なデータ設計・操作力を身につけよう
