基本的な言語機能②についての勉強メモ!
#構造体(struct)
変数のセットを構造体変数として扱えば、新たにすべての変数を定義する必要がないってこと。ドット演算子で構造体変数からメンバー変数にアクセスし、アロー演算子で構造体変数のポインタ変数からメンバー変数にアクセスする。両者の違いに注意!
メンバー変数の初期化は構造体の定義で書いた順番に行われる。
Structure
struct s_name
{
type1 member1;
type1 member2;
...
}
下の一行が何を意味しているかわかればOK
pointer
product* ptr = &pen
#共用体(union)
メンバー変数のアドレスが共用されるタイプ。外で一つのメンバー変数の値が書き換えられると、(アドレスを共用してるので、当然)ほかのメンバー変数の中身も変化する。
まじでなんで必要なのか、、今は不明
#列挙体(enum class)
上の2つとは違いメンバー変数を持たない。通常0から開始の整数だが、好きな値に変更することも可能
Enumarator
enum class e_name{
enumerator1,
enumerator2 = value,
}
列挙体名と列挙値を::スコープ解決演算子でつなげて使う
use_enum
enum_class_name enum = enum_class_name::value;
#練習問題
##1
penをそのまま渡し、渡された先でアドレス演算子でpenのアドレスを取得、その先でpen->idで値を取得すればいい
##2
とばし
##3
(u.x.yは誤植でu.s.yか?)
Sの中まではUnionの影響範囲外なので、xはそのまま