TPY ENGINEERING VLOG

TPY ENGINEERING VLOG(C,JAVA)

*C言語* 〜39時限目〜 構造体の基本・・・

〜目次〜

 

 

構造体型の仕組みについて

新しく決めることができる型として、

構造体型(structure type)

というものがあります。

この型は、

異なる型の値をまとめて新しい型にする

という機能を持っています。

車で例えると、

ナンバー(int型)、ガソリン量(double型)などの、

異なる型の値をまとめて、

「車」をあらわす型にすることができるのです。

構造体型がどのような型であるか取り決めることを、

構造体型の宣言

と呼びます。

構造体型を宣言するには、

struct

というキーワードを使います。

構造体型はブロックの中に、

変数などをまとめて記述したものです。

例で出した車の場合は以下のように宣言できます。

struct Car{    (車をあらわす構造体型Car)

  int num;      (ナンバーを格納する)

  double gas;    (ガソリン量を格納する)

}

 

構造体変数を宣言する

構造体型を宣言することで、

新しい型としてコードの中で使うことができます。

構造体変数の宣言は以下の通りです。

構造体型名 構造体変数名;

struct Car型の変数も、通常の変数と同じように宣言します。

以下のように宣言することで、

struct Car型の変数となります。

struct Car car1;

 

メンバにアクセスする

構造体型の変数(構造体)を宣言すると、

その中のnumやgasに、

実際のナンバーやガソリン量を格納することができるようになります。

このnumやgasといった変数のことを、

メンバ(member)

と呼びます。

構造体のメンバを利用するためには、

ドット演算子(.)

というものを使います。

そして、メンバを利用することを、

メンバにアクセスする

と呼びます。

構造体のメンバへのアクセスは以下の通りです。

構造体変数名.メンバ

実際にコードを入力して、

どのようにして使うのか確認してみます。

sample88.c

f:id:YuyaTerayama:20180913211355p:plainーsample88の実行画面ー

車のナンバーは7777: ガソリン量は12.300000

このようにすることで、

車を扱うコードを書くことができました。

尚、メンバの値をキーボードから入力できると、

より柔軟なプログラムにすることができます。

実際にコードを入力してみます。

sample89.c

f:id:YuyaTerayama:20180913211754p:plainーsample89の実行画面ー

ナンバーを入力してください。

7777

ガソリン量を入力してください。

12.3

車のナンバーは7777:ガソリン量は12.300000

これまでの変数と同じで、

&をつけるということに注意をしてください。

尚、&は構造体名の前につけます。

 

typedefで名前を割り当てる

構造体型の型名を短縮するために、

typedef

というキーワードを使う方法があります。

//構造体型 struct Carの宣言

typedef struct Car{

  int num;

  double gas;

} Car;

こうすることで、「struct Car」という型名に対して、

「Car」という新しい型名をつけることができます。

このため、あとで構造体型の変数を宣言する時には、

以下のように短い名前を使って宣言することができます。

Car car1;

typedefを使うことは便利になるので、

実際にコードの中で使ってみます。

sample90.c

f:id:YuyaTerayama:20180913212556p:plainーsample90の実行画面ー

ナンバーを入力してください。

7777

ガソリン量を入力してください。

12.3

車のナンバーは7777:ガソリン量は12.300000

尚、typedefでつける名前は、

Carでなく別の名前でも問題はありません。

 

次回は構造体の初期化から学んでいきます。

 

〜END〜