「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

「構造体」と「共用体」の違い

スポンサーリンク

予備知識


用語意味
変数プログラミング言語における「値を入れておく箱」
変数の型変数の種類
配列変数を たくさん合体させた変数
配列の要素配列の中身の箱ひとつひとつのこと

それぞれの用語の意味


用語意味
構造体中に入れられる物の種類と数を自分で決められる、変数の型。見方を変えると、自分で型と要素の数を決められる「要素ごとの型が違う配列(っぽいやつ)
共用体省エネタイプの構造体(っぽいやつ)

似ているところ


どちらも「中に入れられる物の種類と数を自分で決められる、変数の型」です。
元からある型の変数を寄せ集めて新しい型を作れます。
例えば「数字も文字も入る変数」を作ったりできます。


「構造体」と「共用体」の違い1

違うところ


構造体では複数の要素を同時に使えますが、共用体では複数の要素を同時に使えません。
共用体では、2つ目の要素を入れた時点で1つ目の要素に入れた値は消えてしまいます。

その理由は

構造体:中に入れる物の数だけ箱が用意される
共用体:箱が1つしか用意されない


からです。

例えば「数字も入れられるし文字も入れられる箱」を作るとしましょう。


「構造体」と「共用体」の違い2

この箱を構造体で作った場合「数字を入れられる箱を1つと文字を入れられる箱を1つ持ってきて、それを新しい大きな箱の中に入れたもの」ができあがります。


「構造体」と「共用体」の違い3

この構造体の中身は

数字を入れられる箱と文字を入れられる箱が1つずつ

です。
構造体の中には、2つの箱があります。


「構造体」と「共用体」の違い4

一方、共用体で作った場合は「数字も入れられるし文字も入れられる1つの箱」ができあがります。


「構造体」と「共用体」の違い5

この共用体の中身は

数字か文字を入れられる箱が1つ

です。
共用体の中には、箱が1つしかありません。
この1つの箱を使いまわします。


「構造体」と「共用体」の違い6

これが構造体と共用体の一番大きな違いです。

構造体では要素ごとに箱が用意されます。
よって

1.文字を入れる
2.数字を入れる
3.文字を取り出す


ができます。


「構造体」と「共用体」の違い7

共用体では全ての要素で同じ箱を使います。
よって

1.文字を入れる
2.数字を入れる
3.文字を取り出す


ができません。
2で数字を入れた時点で、1で入れた文字は潰れちゃうからです。


「構造体」と「共用体」の違い8

繰り返しになりますが

構造体では要素ごとに箱が用意されるが、共用体では全ての要素で1つの箱を使いまわす

のです。


備考


個人的には、まず「構造体とは何か?」をキッチリ理解することを お薦めします。
構造体が何かを理解できたら共用体も理解できたようなものです。

「前に入れた値が上書きされる構造体」が共用体

だと思えば、そこまで間違ってはいないはずです。


スポンサーリンク
書籍画像044
書籍画像017


書籍画像
わわわ説明術コラム
宣伝だよ
つくって、壊して、直して学ぶ Kubernetes入門
インフルエンサー六法 活動開始から情報発信、収益化までに潜むトラブル対策50
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】