プロ言:6〜8章まとめ

2024/02/09

6章

型キャスト 変数の前に括弧を付け,括弧の中に型名を書く
ex) int value = 10; をdoubleとして扱いたい場合
  (double) value … ;
グローバル変数 main関数をはじめとした,すべての関数からアクセス可能な変数
プログラム起動時キドウに一回イッカイだけ初期値ショキの代入ダイニュウが行オコナワレわれる(=変数ヘンスウ の初期化)
>宣言方法:関数の中ではなく,includeの下に変数を定義
オート変数
(ローカル変数)
これまで使用してきた変数。変数を宣言した関数内でのみアクセス可能
関数が呼び出されるごとに初期値の代入が行われる(=変数の初期化 )
スコープ規制 グローバル変数と同オナジじ名前のオート変数が関数カンスウ内ナイブで宣言センゲnされている場合,
その関カンスウカ数からはグローバル変数にアクセスできなくなること
*スコープ:範囲ハンイ
static変数ヘンスウ 同オナジじ関数を繰クリカエセィり返し使ツカウう場合,前回ゼnの関数カンスウ終了時シュウリョウの値アタイを保持ホジできる変数ヘンスウ
プログラムセンゲn起動時に一ヘンスウ回だけ初期値の代入が行われるツケクワエ(=変数の初期化)
>宣言方法:変数宣言のときに「static」を付け加える(セイテキ static int value = 10;)
*static:静的な

7章

関数カンスウ 戻モドり値チの型カタ(内容ナイヨウ) エラー 覚オボエえ方カタ?
FILE* fp; fp=fopen("xxx.txt", "r"); の時トキ…
・ fgetc(fp); int型ガタ(getした文字モジ) EOF [f]getc(どこから);
・  getc(fp);
・ fgets(char buff[], 最大サイダイ文字数モジスウ, fp); char*型カタ(buffの先頭セントウアドレス) NULL fgets(何に, どれだけ, どこから);
・ fscanf(fp, char format[], …); int型ガタ(読ヨみ取トった個数コスウ) EOF fscanf(どこから, 何ナニを/何ナニに);
FILE* fp; fp=fopen("xxx.txt", "w"); の時トキ…
・ fputc(int char, fp); int型ガタ(putした文字モジ) EOF [f]putc(何ナニを, 何ナニに);
・  putc(int char, fp);
・ fputs(char buff[], fp); int型(非負ヒフの整数セイスウ) EOF fputs(何ナニを, 何ナニに);
・ fprintf(fp, char format[], …); int型ガタ(出力シュツリョクした個数コスウ) EOF fprintf(何ナニに, 何ナニを);
FILE* fp; fp=fopen("xxx.txt", "rb"); の時トキ…
・ fread(buff[], 項目サヨミトリイズn, 項目コウモクの数カズm, fp); int型カタ(読ヨミトリみ取りに成功した個数コスウ) < m fread(何ナニに, 大オオキサきさnを, m個コ, どこから); *1 *2
FILE* fp; fp=fopen("xxx.txt", "wb"); の時トキ…
・ fwrite(buff[], 項目サヨミトリイズn, 項目コウモクの数カズm, fp); int型カタ(書カキコミき込みに成功した個数コスウ) < m fread(何ナニを, 大オオキサきさnを, m個コ, 何ナニに); *1 *2
その他(FILE* fp; のもと)
・ r:読ヨミみ込み,w:書カキコミき込み,a:終端シュウタnに追加ツイカ(add),b:バイナリモード ←これらを組クミみ合わせてファイルを開く
・ fopen:失敗値シッパイはNULL
・ fclose(fp); :使ツカイい終わったら閉トジヨじよう
*1: 項目コウモクサイズnは,sizeof(buffの型kata) が普通フツウ
*2: 項コウモク目の数mは,buffの要素数ヨウソが普通フツウ

8章

構造体コウゾウ 一ヒトテゥつの変数ヘンスウ内ナイブに複数フクスウの部屋がある変数ヘンスウ
>定義テイギする方法( [タグ名]は省略可ショウリャク)
    typedef struct [タグ名]{
         int value;
         int test;
    }
num_t;
↑元モトは「struct タグ名 { … };」であったが,毎回マイカイ「struct タグ名」と記述キジュテゥする必要があり面倒臭メンドウい。
 そのため,これらを「num_t」とtypedef(型カタヲを定義)すれば,今後コンゴ「num_t」と簡潔カンケツニに書けるようになる
*以降イコウ,構造体をnum_t型の変数と定義したものを使ツカウう↓↓↓
構造体コウゾウの初期化ショキ 初期化時点ショキで値アタイを代入ダイニュウしたい場合,
num_t test = { 10 ,  20 };
構造体コウゾウの値アタイノの取得シュトク
(書カキコミき込み)
num_t test = {10, 20}; の場合バアイ…
test.value は「10」,test.testは「20」になる
これに,test.value = 30; などで,構造体コウゾウの中ナカの値アタイを書カキコムき込むことも可能
構造体コウゾウのノ代入ダイニュウ 配列ハイレテゥは一ヒトテゥつ一つの値アタイを個ココニ々に代入ダイニュウする必要があったが,複数フクスウの値アタイがまとまっている構造体コウゾウの場合バアイは丸マルゴトごと代入可能ダイニュウ
ex) num_t test = {10, 20}; の場合バアイ…
  num_t value = test; が可能カノウ(value.value = 10  ,  value.test = 20 になる)
構コウゾウ造体の配列 numコウゾウ_t 配列名[カタ要素数ヘンスウ]; テイギと宣言センゲnすれば良い
ex) num_t ハイレテゥtestヨウソス[5];
↑この時ジテn点でカク各要ヨウソ素にはnum_tカタ型がハイッテ入っているので,早サッソク速「test[90].value = xxx;」の記キジュテゥ述が可カノウ能
>配列ハイレテゥで初期化時点ショキでの値代入アタイが行オコナイタケレいたければ,
 num_t test[5] = { {24,78}, {10,10}, {-10,10}, {-10,-10}, {10,-10} };
 と書く
 *num_t test[] = { {24,78}, {10,10}, {-10,10}, {-10,-10}, {10,-10} �� 

 $.1!2$;&=*E
}; ←初期化時点での代入を行うのであれば,要素数は書いてなくても大丈夫だった
構造体コウゾウと関数 引数ヒキスウとして構造体コウゾウを渡ワタスすことも可能
void function( num_t nt ){ … };
特トクニに,戻モドリチテり値として構造体コウゾウを返カエスす場合は,
num_t function2( … ){ … };
とし,最後サイゴに「return 」することを忘ワスレれない