カテゴリ: C言語 更新日: 2025/12/29

C言語のstructでデータをまとめて扱う方法を完全解説!初心者向けの構造体入門

C言語の構造体(struct)の基本構文
C言語の構造体(struct)の基本構文

先生と生徒の会話形式で理解しよう

生徒

「C言語で複数のデータをまとめて扱う方法はありますか?」

先生

「ありますよ。C言語では構造体という仕組みを使うことで、名前や番号など複数の情報をひとつのかたまりとして扱えます。」

生徒

「変数が複数あると管理が難しいので便利そうですね。」

先生

「それでは、基本から丁寧に説明していきます。」

1. C言語の構造体(struct)とは?

1. C言語の構造体(struct)とは?
1. C言語の構造体(struct)とは?

C言語の構造体は、複数の変数をひとつにまとめるための仕組みです。例えば、ある人の名前、年齢、身長などを別々の変数で管理すると、それぞれ変数を探したり整理したりする必要があり、初心者にはとても難しく感じることがあります。このような場面で役立つのが構造体です。構造体は、異なる種類のデータを一つにまとめて扱うことができるため、実践的なプログラムでとてもよく使われます。特にゲームや家計簿、住所録など、たくさんの情報をまとめて扱うプログラムでは欠かせない仕組みです。

2. 構造体の基本構文を覚えよう

2. 構造体の基本構文を覚えよう
2. 構造体の基本構文を覚えよう

C言語の構造体は、structというキーワードを使って定義します。定義した構造体は、普通の変数と同じように宣言して使います。最初は難しそうに感じますが、文法はとてもシンプルです。


struct Person {
    char name[20];
    int age;
    float height;
};

このように書くと、名前、年齢、身長をまとめて「Person」というひとつのかたまりとして扱えるようになります。構造体の名前は自由につけることができ、自分の扱いたいデータに合わせて設計できます。

3. 構造体変数を使ってみよう

3. 構造体変数を使ってみよう
3. 構造体変数を使ってみよう

構造体を定義しただけでは使えません。普通の変数と同じように宣言して、データを代入したり表示したりできます。次は構造体の変数を作って、実際に値を代入する例です。


struct Person taro;
strcpy(taro.name, "Taro");
taro.age = 20;
taro.height = 170.5;

構造体の変数には、ドットを使って中の値にアクセスします。これは構造体専用の書き方で、とても大切なポイントです。

4. 構造体を使ったサンプルプログラム

4. 構造体を使ったサンプルプログラム
4. 構造体を使ったサンプルプログラム

ここまでの内容を使って、実際にC言語のプログラムを作ってみましょう。


#include <stdio.h>
#include <string.h>

struct Person {
    char name[20];
    int age;
    float height;
};

int main() {
    struct Person taro;

    strcpy(taro.name, "Taro");
    taro.age = 20;
    taro.height = 170.5;

    printf("名前: %s\n", taro.name);
    printf("年齢: %d\n", taro.age);
    printf("身長: %.1f\n", taro.height);

    return 0;
}

名前: Taro
年齢: 20
身長: 170.5

5. 構造体はなぜ必要なのか

5. 構造体はなぜ必要なのか
5. 構造体はなぜ必要なのか

実生活と同じように、コンピュータでもひとつの対象が複数の情報を持つことは日常的にあります。構造体を使わずにすべて別々の変数で扱うと、データが増えるほど管理が困難になります。構造体を使えば、ひとまとまりの情報として扱えるため、初心者でも整理しながらプログラムを書くことができます。

6. 応用への第一歩

6. 応用への第一歩
6. 応用への第一歩

構造体は、配列と組み合わせることで人数分のデータを管理でき、名簿や住所録を作るプログラムにも応用できます。ゲームのキャラクター情報、家計簿、商品管理などでも使われ、初心者が実践的なプログラムを書くための重要な技術です。

まとめ

まとめ
まとめ

C言語のstructで学んだことの振り返り

ここまで、C言語における構造体structの基本から、実際の使い方、そしてなぜ必要なのかという考え方までを丁寧に学んできました。 C言語は手続き型言語として有名ですが、structを使うことで、現実世界に近い形でデータを整理しながらプログラムを組むことができます。 名前、年齢、身長のように、ひとつの対象が複数の情報を持つ場合、それらを別々の変数として管理すると、コードが読みにくくなり、 修正や拡張もしづらくなってしまいます。 構造体を使えば、関連するデータをひとつのまとまりとして扱えるため、プログラム全体の見通しが良くなり、 初心者でも理解しやすく、ミスの少ないコードを書くことができます。

また、structの定義方法、構造体変数の宣言、ドット演算子によるメンバへのアクセス方法は、 C言語の構造体を使ううえで必ず押さえておきたい重要なポイントです。 これらを理解することで、配列や関数と組み合わせた応用的なプログラムにも挑戦できるようになります。 実務や学習の場面では、名簿管理、商品情報管理、ゲームキャラクター管理など、 構造体を使う場面は非常に多く、C言語入門から中級への大きなステップとなります。

構造体を使った整理されたプログラム例

以下は、これまで学んだ内容を意識して、構造体でデータをまとめて扱うサンプルプログラムです。 定義、宣言、代入、表示という流れを改めて確認してみましょう。


#include <stdio.h>
#include <string.h>

struct Person {
    char name[20];
    int age;
    float height;
};

int main() {
    struct Person student;

    strcpy(student.name, "Hanako");
    student.age = 22;
    student.height = 158.3;

    printf("名前: %s\n", student.name);
    printf("年齢: %d\n", student.age);
    printf("身長: %.1f\n", student.height);

    return 0;
}

このようにstructを使うことで、データの意味が明確になり、プログラムの可読性が大きく向上します。 C言語の基礎文法とあわせて構造体を使いこなせるようになると、 より実践的で現場に近いプログラムを書けるようになります。

先生と生徒の振り返り会話

生徒

「最初はstructが難しそうに見えましたが、データをまとめる箱のようなものだと考えると、 とても分かりやすく感じました。」

先生

「その理解はとても大切ですね。C言語の構造体は、複数の情報を整理するための基本的な考え方を学ぶ良い題材です。」

生徒

「変数をたくさん使うよりも、structでまとめた方がプログラム全体が読みやすくなりました。 配列と組み合わせると、さらに便利そうですね。」

先生

「その通りです。次は構造体配列や、関数に構造体を渡す方法を学ぶと、 C言語でできることが一気に広がりますよ。」

生徒

「C言語の基礎文法とstructをしっかり復習して、もっと実用的なプログラムを書けるようになりたいです。」

先生

「その意欲があれば大丈夫です。構造体はC言語学習の大きな山場ですが、 ここを越えるとプログラミングが一段と楽しくなります。」

カテゴリの一覧へ
新着記事
New1
C++
C++の変数のスコープと有効範囲を完全解説!初心者でもわかる基本と考え方
New2
C++
C++とは?歴史と特徴を初心者向けに解説!Rustとの違いとモダン言語比較
New3
C++
MinGWとMSYS2でWindowsにC++環境を構築する方法を徹底解説!初心者でもできるセットアップガイド
New4
Rust
Rust開発環境をLinuxで構築する方法とおすすめ設定を初心者向けに徹底解説
人気記事
No.1
Java&Spring記事人気No1
C言語
C言語をオンラインで実行できる便利なコンパイラサービスまとめ【初心者向け】
No.2
Java&Spring記事人気No2
C言語
C言語の関数定義と呼び出しを完全ガイド!初心者でも分かる基本の書き方
No.3
Java&Spring記事人気No3
C++
C++の主要な実装をわかりやすく解説!GCC・Clang・MSVCの違いと特徴
No.4
Java&Spring記事人気No4
C言語
Makefile入門:C言語プロジェクトを自動ビルドしよう!初心者でも分かる仕組みと使い方
No.5
Java&Spring記事人気No5
C言語
C言語の列挙型(enum)の使い方を完全ガイド!初心者でもわかる基本操作
No.6
Java&Spring記事人気No6
C言語
C言語の開発環境をWindowsに構築する方法【Visual Studio編】
No.7
Java&Spring記事人気No7
C言語
Visual Studio CodeでC言語を実行する方法【拡張機能の設定と実行手順】
No.8
Java&Spring記事人気No8
C言語
C言語を学ぶ初心者におすすめの環境構築手順【2025年版】