プロ言: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 」することをワスレれない