特別なファイルポインタ ・コンソールとの入出力を行う特別なファイルポインタ 標準入力 stdin 標準出力 stdout 標準エラー出力 stderr ・オープン/クローズする必要はない C言語研修(基礎編) 〜構造体〜 構造体とは ・いくつかの変数をまとめて1つにしたもの −1つの変数として操作できる −新しい型を作ったイメージ ・関連のあるデータをまとめて表現できる 構造体の宣言 struct 構造体名(タグ){ メンバ変数のリスト (変数宣言のように記述) }; 構造体の宣言例 ・構造体の宣言例 struct PRESON{ char pszName[100 + 1]; int iAge; doouble fHeight; } ・構造体変数の宣言例 struct PRESON sPerson; struct PRESON psPersonArray[100]; 構造体変数の使用(メンバ変数) ・構造体のメンバ変数は、演算子(ドット演算子)を使用してアクセスする −一つ一つのメンバ変数は通常の変数と同様に扱う strcpy(sPerson1.pszName, "Person anme"); sPerson1.iAge = 25; sPerson1.fHeight = 172.2; 構造体変数の使用(代入) ・構造体変数同士の代入は通常の変数のように = を使用する −同じ種類の構造体間でのみ代入ができる sPerson2 = sPerson1; ・各変数にたいして代入処理をしないため代入処理が簡潔になる 構造体変数の使用(ポインタ) ・構造体変数にも通常の変数のようにポインタ型がある −ポインタ変数の宣言 struct PERSON *psPreeson1; −変数のアドレスの取得 psPerson1 = &psPErson2; −構造体のポインタ変数に *演算子を適用する (*psPerson1).pszName 構造体変数の使用(ポインタ変数) −構造体のポインタ変数に *演算子を適用する (*psPerson1).pszName (*psPerson1).iAge (*psPerson1).fHeight −構造体のポインタ変数に ->演算子を適用する psPerson1->pszName psPerson1->iAge psPerson1->fHeight 構造体変数の値渡し 宣言 引数のエデータ型を構造体型にする void TestFunc(struct PERSON sTemp) 使用 値を関数に渡す TestFunc(sPerson); 備考 通常の変数のように関数に渡せる 構造体変数の参照渡し 宣言 引数のデータ型を構造体ポインタ型にする void TestFunc(struct PERSON *sTemp) 使用 値を関数に渡す TestFunc(&sPerson); 備考 通常の変数のように関数に渡せる