C言語の始め方【第5回 構造体】※現役エンジニアによる解説

C言語構造体例 C言語の始め方
本ページは、プロモーションを含んでいる場合があります。
対象C言語初心者
記事概要C言語の構造体について記載しています。
筆者Zuu [ ]

C言語歴20年以上。
大手電機メーカーでの製品開発およびマネジメント経験がある現役エンジニアです。
プロジェクトマネージャ、システムアーキテクトなどの資格を保有しています。
システムアーキテクト試験合格証書

はじめに

構造体は、「変数」の一種です。変数についての理解が不十分だと感じている場合は、まずは変数について学びましょう。

本サイトでは、以下の記事で変数について説明しています。よろしければご覧ください。

C言語の始め方【第2回 変数】※現役エンジニアによる解説
C言語の変数をわかりやすく解説。 変数とは、値(データ)を記憶する機能。 記憶したい値(数値や文字など)によって、型を変える。 名前で区別するため、適切な名前(用途など)を付けると良い。 変数にはローカル・グローバルという区別がある。

構造体とは?

構造体(こうぞうたい、英: structure)はプログラミング言語におけるデータ型の一つで、1つもしくは複数の値をまとめて格納できる型。それぞれのメンバー(フィールド)に名前が付いている点、またメンバーの型が異なっていてもよい点が配列と異なる。

理解しておきたいポイントは以下の2点です。

  • 複数のメンバーに名前をつけて1つにまとめる。
  • メンバーのは異なっていても良い。

例えば、「名前・身長・体重」をまとめて管理したいといった場合に利用します。
やみくもにまとめるのではなく、関連するデータのみをまとめると良い構造体になります。

C言語構造体概要

C言語での構造体の扱い方

構造体は変数の一種なので、使う場合には宣言が必要です。

ただし、構造体の場合は、構造体がどのようなメンバーで構成されているのかをあらかじめ定義しておく必要があります。構造体の定義には、「struct」という構文を使用します。

また、構造体が持っているメンバーへのアクセスには「.」を使用します。
※「変数名.メンバー名」となります。

その他に覚えておきたいこと

構造体の初期化方法

構造体は、変数の一種のため、宣言時に初期化することもできます。
定義したメンバー順に初期値を記述する形となります。

独自の型名の定義方法

構造体は、変数宣言時に「struct 〇〇」とする必要があり、少し煩雑でした。
「struct」を省略して、intなどの型と同じようにする便利な方法があります。

よく使うので是非慣れておきたいですね。

ポインタを使った構造体へのアクセス方法

※後で説明する「ポインタ」に関連するので、最初は読み飛ばしてもらって、また後で読むというのでも構いません。

構造体が持っているメンバーへのアクセスには「.」を使用すると説明しましたが、「.」を使えないケースがあります。それは、ポインタを使って構造体へアクセスするケースです。

ポインタを使って構造体へアクセスする場合は、「->」を使う必要があります。

通常のアクセスか、ポインタを使ったアクセスかどうかを見極めて、「.」と「->」を使い分けます。混乱しやすい部分なので、しっかり理解しておきましょう。具体的には、以下の部分に注目すると区別できます。

*なし:「.」
*あり:「->」

構造体も配列にできる

構造体は独自の型を定義するものなので、intなどの標準の型と同様に配列として使うことができます。

まとめ

  • 構造体は、複数のメンバーに名前をつけて1つにまとめる場合に使用する。
  • 関連するデータのみをまとめると良い構造体になる。
  • 通常のアクセスとポインタを使ったアクセスでメンバーへのアクセス方法が変わる。
  • 構造体は、配列としても使用可能。
C言語の始め方【第6回 関数】※現役エンジニアによる解説
C言語の関数をわかりやすく解説。関数とは、意味や内容がまとまっている作業をひとつの手続きとしたもの。 値を与えることができ、値を返すことができる。 ポインタを使って出力引数にすると、戻り値以外でも処理結果を受け取れる。
C言語の始め方(初心者向けC言語講座)
C言語歴20年以上の現役エンジニアがC言語について説明しています。 重要なポイントを学習しやすい構成にしているつもりです。 変数、分岐処理、反復処理、・配列、構造体、関数、ポインタ、ファイルの取り扱い、など。ポインタの理解に主眼を置いています。

コメント

タイトルとURLをコピーしました