詳細な索引(C言語によるプログラミング 基礎編 (第3版))

索引の見方赤字→詳しい説明,太字→普通の説明,薄字→単に記載されているだけ,▶の付いている見出しをタップすると詳細が下方に展開されます

2021年3月24日版

記号!"#$%&'()*+   ひらがな
,-./:;<=>?@   
[\]^_`{|}~¥   
数字0123456789
英字ABCDEFGHIJK
LMNOPQRSTUV
WXYZ
  ☝     !    (感嘆符、エクスクラメーションマーク)
 関係演算子  
        != (非等号)  110(表4.4)    114   
               != (非等号、優先順位)  99(表3.17)   
               使用事例  
                      リスト 2.13 入力された値が0でないかチェックするプログラム  51(リスト2.13 14行目)   
                      リスト 4.1 関係演算子  110(リスト4.1 14行目)   
                      リスト 4.15 入力した文字を出力する(その1)  158(リスト4.15 6行目)   
                      リスト 4.16 入力した文字を出力する(その2)  159(リスト4.16 7行目)   
                      リスト 4.21 goto 文による多重ループの強制脱出(掛け算問題)  169(リスト4.21 14行目)   
                      リスト 4.22 フラグを使った強制脱出(掛け算問題)  170(リスト4.22 17行目)   
                      リスト 5.18 最大公約数を求めるプログラム (その1)  203(リスト5.18 21行目)   
                      リスト 5.19 最大公約数を求めるプログラム (その2)  204(リスト5.19 26行目)   
                      リスト 7.7 文字列の長さを知るプログラム  274(リスト7.7 7行目)   
                      リスト 7.9 文字列の比較を行うプログラム  276(リスト7.9 11行目)   
                      リスト 8.10 文字列の内容を表示するプログラム (配列版)  304(リスト8.10 9行目)   
                      リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 22行目)   
                      リスト 10.5 データファイルへの出力  364(リスト10.5 23行目)   
                      リスト 10.8 例外処理でgoto 文が有効な例  373(リスト10.8 17, 19, 21行目)   
                      リスト 10.10 ファイル入出力サンプル  375(リスト10.10 24行目)   
                      リスト 10.12 stderr に置き換えたファイル入出力サンプル  377(リスト10.12 24行目)   
 論理演算子  
        ! (否定演算子)  89(表3.13)    115(表4.5)    119    120   
               ! (優先順位)  99(表3.17)   
               使用事例  
                      リスト 11.1 main 関数の実装  387(リスト11.1 63行目)   
                      リスト 11.5 夏日判定プログラム  391(リスト11.5 95行目)   
  ☝     "    (ダブルクォーテーション)
 " (インクルードファイルの指定)  182   
 " (ダブルクォーテーション)  35   
        文字列  74   
  ☝     #    (番号記号、げた、ハッシュ)
 #(シャープ) プリプロセッサの指示  23(Coffee Break 1.3)   
 #define  87    247    252    340    341(Coffee Break 9.5)    342(Coffee Break 9.6)    343    345   
        #defineディレクティブ ⇒ ディレクティブ  27   
        使用事例  
               リスト 5.16 総称選択を用いたmax 関数  200(リスト5.16 6行目)   
               リスト 6.10 バブルソートによる並べ替え (マクロ使用版)  248(リスト6.10 3行目)   
               リスト 6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249(リスト6.11 3行目)   
               リスト 6.12 行列の和  252(リスト6.12 3, 4行目)   
               リスト 6.13 行列の積  255(リスト6.13 3, 4, 5行目)   
               リスト 6.14 最も離れた席を探す  259(リスト6.14 4行目)   
               リスト 9.5 最も離れた席を探す (構造体配列版)  335(リスト9.5 4行目)   
               リスト 9.6 構造体のメンバをポインタを使って参照する  337(リスト9.6 3行目)   
               リスト 8.7 合計を求める (配列版)  299(リスト8.7 2行目)   
               リスト 8.8 合計を求める (値のアクセスをポインタで行う版)  300(リスト8.8 2行目)   
               リスト 10.7 fgets 関数を使用した例  370(リスト10.7 5行目)   
               リスト 10.10 ファイル入出力サンプル  375(リスト10.10 4行目)   
               リスト 10.12 stderr に置き換えたファイル入出力サンプル  377(リスト10.12 4行目)   
               リスト 11.1 main 関数の実装  387(リスト11.1 2行目)   
 #include  
        #includeディレクティブ ⇒ ディレクティブ  34   
        #include<float.h>  66(Coffee Break 3.2)    232   
               使用事例  
                      リスト 6.5 配列とfor 文を用いた体重の最大値と最小値の検出  231(リスト6.5 1行目)   
                      リスト 6.6 配列を使用しない体重の最大値と最小値の検出  233(リスト6.6 1行目)   
        #include<complex.h>  87    88   
        #include<math.h>  139   
               使用事例  
                      リスト 4.8 半径1の円周上の座標を求める  139(リスト4.8 1行目)   
                      リスト 4.9 2次方程式の実数解を求める  143(リスト4.9 1行目)   
                      リスト 4.11 sin, cosの三角関数  150(リスト4.11 1行目)   
                      リスト 4.13 数表  154(リスト4.13 1行目)   
                      リスト 4.19 偶数の数表  164(リスト4.19 1行目)   
                      リスト 5.11 sqrt の計算と表示  193(リスト5.11 1行目)   
                      リスト 6.7 平均値・分散・標準偏差 (その1)  236(リスト6.7 1行目)   
                      リスト 6.8 平均値・分散・標準偏差 (その2)  238(リスト6.8 1行目)   
                      リスト 6.14 最も離れた席を探す  259(リスト6.14 1行目)   
                      リスト 9.5 最も離れた席を探す (構造体配列版)  335(リスト9.5 1行目)   
        #include<stdbool.h>  87   
               使用事例  
                      リスト 11.5 夏日判定プログラム  391(リスト11.5 1行目)   
        #include<stdio.h>  23(Coffee Break 1.3)    34   
        #include<stdlib.h>  142(Coffee Break 4.2)   
               使用事例  
                      リスト 10.2 データの集計 (入力ファイルからデータを読み込む)  352(リスト10.2 2行目)   
                      リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 2行目)   
                      リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 2行目)   
                      リスト 10.5 データファイルへの出力  364(リスト10.5 2行目)   
                      リスト 10.6 データの追加  366(リスト10.6 2行目)   
                      リスト 10.7 fgets 関数を使用した例  370(リスト10.7 2行目)   
                      リスト 10.10 ファイル入出力サンプル  375(リスト10.10 2行目)   
                      リスト 10.12 stderr に置き換えたファイル入出力サンプル  377(リスト10.12 2行目)   
                      リスト 11.5 夏日判定プログラム  391(リスト11.5 3行目)   
        #include<string.h>  270   
               使用事例  
                      リスト 7.6 文字列の長さを知るプログラム (標準関数を使用)  274(リスト7.6 2行目)   
                      リスト 7.8 文字列の比較を行うプログラム (標準関数を使用)  275(リスト7.8 2行目)   
                      リスト 7.10 文字列のコピーを行うプログラム (標準関数を使用)  278(リスト7.10 2行目)   
                      リスト 7.12 文字列の連結を行うプログラム (標準関数を使用)  280(リスト7.12 2行目)   
                      リスト 9.1 構造体の利用  320(リスト9.1 2行目)   
                      リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 3行目)   
                      リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 3行目)   
                      リスト 10.7 fgets 関数を使用した例  370(リスト10.7 3行目)   
                      リスト 11.5 夏日判定プログラム  391(リスト11.5 4行目)   
  ☝     $    (ドル記号)
 $ プロンプト  25(脚注62)   
 $? (UNIXで終了コードを格納する変数)  142(Coffee Break 4.2)   
  ☝     %    (パーセント)
 % (余りを求める演算子)  49    93(表3.15)    94    124   
        % (余りを求める演算子、優先順位)  99(表3.17)   
        %を用いない余りの計算  95   
        使用事例  
               リスト 3.13 整数の加算、減算、除算、余り  94(リスト3.13 94行目)   
               リスト 3.14 %を用いない余りの計算  95(リスト3.14 95行目)   
 % (パーセント)  
        フォーマット指定子  
               %c (char に対する)  70    73    111    112   
               %d (int に対する)  44    112   
               %e (double に対する)  79   
               %f (printf:float、double に対する、scanf:float に対する)  77    112(脚注3)    78    101(リスト3.17 10行目)    102(リスト3.18 9行目)   
               %g (double に対する)  79    86(リスト3.12 9行目)    96(リスト3.15 11行目)    112(脚注3)   
               %hd (short int に対する)  112   
               %ld (long int に対する)  75    96(リスト3.16 14,15,17行目)    112   
               %lf (double に対する)  78    112    112(脚注3)   
               %lld (long long int に対する)  75   
               %o (unsigned int に対する8進表記)  未記載   
               %p (ポインタ表示書式指定)  289   
               %s (文字列に対する)  270    270(リスト7.2 13行目)    271(リスト7.3 9行目)   
               %x (unsigned int に対する16進表記)  112(リスト4.2 21,22行目)   
               %数値.数値e (double に対する)  79   
               %数値.数値f (double に対する)  78    80(リスト3.7 17行目)   
               %数値f (double に対する)  78   
 % (プロンプト)  25(脚注62)   
  ☝     &    (アンパサンド)
 & (アドレス演算子)  44    111    286(落とし穴8.1)    288    289(リスト8.1 7行目)    336   
        & (優先順位)  99(表3.17)    286(落とし穴8.1)   
        使用事例  
               リスト 2.8 キーボードからの入力  43(リスト2.8 7行目)   
               リスト 2.11 2つの整数が割りきれる場合答えを表示するプログラム  49(リスト2.11 9, 11行目)   
               リスト 2.12 割りきれない場合の処理を追加したプログラム  50(リスト2.12 9, 11行目)   
               リスト 2.13 入力された値が0でないかチェックするプログラム  51(リスト2.13 9, 11行目)   
               リスト 3.5 文字の変換  73(リスト3.5 10行目)   
               リスト 4.2 文字の比較  112(リスト4.2 8行目)   
               リスト 4.3 ANDとORの使用例  112(リスト4.3 9行目)   
               リスト 4.4 偶数か奇数かの判断  125(リスト4.4 8行目)   
               リスト 4.7 switch 文で月の日数を判断する  132(リスト4.7 8行目)   
               リスト 4.8 半径1の円周上の座標を求める  139(リスト4.8 11行目)   
               リスト 4.9 2次方程式の実数解を求める  143(リスト4.9 9行目)   
               リスト 4.12 数当てゲーム  152(リスト4.12 13行目)   
               リスト 4.18 厄年ではない年齢を表示する  162(リスト4.18 8行目)   
               リスト 4.21 goto 文による多重ループの強制脱出(掛け算問題)  169(リスト4.21 13行目)   
               リスト 4.22 フラグを使った強制脱出(掛け算問題)  170(リスト4.22 16行目)   
               リスト 5.13 max 関数  196(リスト5.13 10行目)   
               リスト 5.14 誤りのあるmax 関数の例  198(リスト5.14 12, 16行目)   
               リスト 5.15 正しいmax 関数の例  198(リスト5.15 12, 16行目)   
               リスト 5.16 総称選択を用いたmax 関数  200(リスト5.16 14, 18行目)   
               リスト 6.1 配列を使わないプログラム例:複雑で長くなる  224(リスト6.1 13行目)   
               リスト 6.2 配列を使ったプログラム  225(リスト6.2 14行目)   
               リスト 6.3 配列の代入と参照 (入力チェック組込版:23行目以降は省略)  230(リスト6.3 17行目)   
               リスト 6.7 平均値・分散・標準偏差 (その1)  236(リスト6.7 16行目)   
               リスト 6.9 バブルソートによる並べ替え  245(リスト6.9 13行目)   
               リスト 6.10 バブルソートによる並べ替え (マクロ使用版)  248(リスト6.10 15行目)   
               リスト 6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249(リスト6.11 14, 26行目)   
               リスト 6.12 行列の和  252(リスト6.12 19, 29行目)   
               リスト 6.13 行列の積  255(リスト6.13 20, 30行目)   
               リスト 9.2 共用体の利用 (その1)  325(リスト9.2 13, 23行目)   
               リスト 9.5 最も離れた席を探す (構造体配列版)  335(リスト9.5 22行目)   
               リスト 9.6 構造体のメンバをポインタを使って参照する  337(リスト9.6 14行目)   
               リスト 8.1 変数 x の配置アドレスを表示する  289(リスト8.1 7行目)   
               リスト 8.2 変数 x の配置アドレスを、ポインタを用いて表示する  290(リスト8.2 8行目)   
               リスト 8.3 ポインタ演算のテスト(その1)  294(リスト8.3 7行目)   
               リスト 8.4 ポインタ演算のテスト(その2)  295(リスト8.4 7行目)   
               リスト 8.5 ポインタ演算のテスト(演算子による違い)  296(リスト8.5 7行目)   
               リスト 8.6 ポインタどうしの減算  297(リスト8.6 8行目)   
               リスト 8.8 合計を求める (値のアクセスをポインタで行う版)  300(リスト8.8 11行目)   
               リスト 8.9 合計を求める (よりCらしいプログラム)  301(リスト8.9 10行目)   
               リスト 8.11 文字列の内容を表示するプログラム (ポインタ版)  305(リスト8.11 9行目)   
               リスト 8.13 正しいswap 関数の例  307(リスト8.13 11行目)   
               リスト 10.1 データの集計 (手で入力作業をする版)  348(リスト10.1 12行目)   
               リスト 10.2 データの集計 (入力ファイルからデータを読み込む)  352(リスト10.2 19行目)   
               リスト 10.7 fgets 関数を使用した例  370(リスト10.7 27行目)   
               リスト 11.1 main 関数の実装  387(リスト11.1 49, 52行目)   
               リスト 11.2 データ取り出し関数の実装  389(リスト11.2 7, 10行目)   
               リスト 11.3 夏日計数関数の実装  390(リスト11.3 5行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 79, 83, 111, 114, 122行目)   
 & (ビット演算子(ビットAND))  99(表3.17)   
 && (かつ)  114    115(表4.5)   
        使用事例  
               リスト 4.3 ANDとORの使用例  112(リスト4.3 12, 16, 18行目)   
               リスト 11.1 main 関数の実装  387(リスト11.1 22, 31行目)   
               リスト 11.3 夏日計数関数の実装  390(リスト11.3 3行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 52, 61, 120行目)   
 &= (ビットANDの結果を代入する)  91(表3.14)   
  ☝     '    (シングルクォーテーション)
 ' (シングルクォーテーション)  69    70   
        使用事例  
               リスト 3.2 文字の表示  69(リスト3.2 7~9行目)   
               リスト 3.3 引用文字の表示  70(リスト3.3 7行目)   
               リスト 3.4 文字の計算  72(リスト3.4 7行目)   
               リスト 3.5 文字の変換  73(リスト3.5 11行目)   
               リスト 7.1 文字 A を表示する  268(リスト7.1 7行目)   
               リスト 7.2 文字配列 (char 型の配列) に文字列を格納する  270(リスト7.2 7~12行目)   
  ☝     (    (開き括弧)
 キャスト  
        (cast) (優先順位)  99(表3.17)   
        (型名)(算術演算) (キャスト)  103   
        (型名)定数 (キャスト)  103   
        (型名)変数 (キャスト)  103   
        使用事例  
               リスト 10.2 データの集計 (入力ファイルからデータを読み込む)  352(リスト10.2 29行目)   
               リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 33行目)   
               リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 30行目)   
               リスト 10.5 データファイルへの出力  364(リスト10.5 32行目)   
               リスト 10.7 fgets 関数を使用した例  370(リスト10.7 39行目)   
 ( ) 数式で使う括弧  99(表3.17)   
  ☝     *    (アスタリスク)
 * (間接演算子)  291    299   
        * (間接演算子、優先順位)  99(表3.17)   
        使用事例  
               リスト 8.8 合計を求める (値のアクセスをポインタで行う版)  300(リスト8.8 15行目)   
               リスト 8.9 合計を求める (よりCらしいプログラム)  301(リスト8.9 13, 15行目)   
               リスト 8.11 文字列の内容を表示するプログラム (ポインタ版)  305(リスト8.11 9行目)   
               リスト 8.13 正しいswap 関数の例  307(リスト8.13 21~23行目)   
               リスト 8.15 ポインタを使ったstr_copy 関数のプログラム  310(リスト8.15 5, 6行目)   
               リスト 8.16 int 型の配列に格納されている数値をすべて合計する関数 (不完全版)  311(リスト8.16 7行目)   
               リスト 8.17 int 型の配列に格納されている数値をすべて合計する関数 (引数に配列の要素)  311(リスト8.17 7行目)   
 * (乗算演算子)  46    93(表3.15)   
        * (乗算演算子、浮動小数点型)  96   
        * (乗算演算子、優先順位)  99(表3.17)   
        使用事例  
               リスト 2.10 四則演算のプログラム  46(リスト2.10 19行目)   
               リスト 3.8 変数を用いた計算  81(リスト3.8 13行目)   
               リスト 3.9 実行文後の変数の定義例  83(リスト3.9 11行目)   
               リスト 3.13 整数の加算、減算、除算、余り  94(リスト3.13 11行目)   
               リスト 3.14 %を用いない余りの計算  95(リスト3.14 9行目)   
               リスト 3.15 double 型の加算・減算  96(リスト3.15 10行目)   
               リスト 4.9 2次方程式の実数解を求める  143(リスト4.9 25, 28, 29行目)   
               リスト 4.13 数表  154(リスト4.13 14行目)   
               リスト 4.19 偶数の数表  164(リスト4.19 18行目)   
               リスト 4.21 goto 文による多重ループの強制脱出(掛け算問題)  169(リスト4.21 14行目)   
               リスト 4.22 フラグを使った強制脱出(掛け算問題)  170(リスト4.22 17, 30行目)   
               リスト 5.11 sqrt の計算と表示  193(リスト5.11 24行目)   
               リスト 5.17 組み合わせを求めるより簡潔なプログラム  201(リスト5.17 24行目)   
               リスト 6.7 平均値・分散・標準偏差 (その1)  236(リスト6.7 28行目)   
               リスト 6.8 平均値・分散・標準偏差 (その2)  238(リスト6.8 16, 20行目)   
               リスト 6.14 最も離れた席を探す  259(リスト6.14 31行目)   
               リスト 9.5 最も離れた席を探す (構造体配列版)  335(リスト9.5 31行目)   
 * (ポインタの定義)  290   
        使用事例  
               リスト 9.6 構造体のメンバをポインタを使って参照する  337(リスト9.6 12行目)   
               リスト 8.2 変数 x の配置アドレスを、ポインタを用いて表示する  290(リスト8.2 5, 6行目)   
               リスト 8.3 ポインタ演算のテスト(その1)  294(リスト8.3 7行目)   
               リスト 8.4 ポインタ演算のテスト(その2)  295(リスト8.4 7行目)   
               リスト 8.5 ポインタ演算のテスト(演算子による違い)  296(リスト8.5 7行目)   
               リスト 8.6 ポインタどうしの減算  297(リスト8.6 6行目)   
               リスト 8.8 合計を求める (値のアクセスをポインタで行う版)  300(リスト8.8 9行目)   
               リスト 8.9 合計を求める (よりCらしいプログラム)  301(リスト8.9 8行目)   
               リスト 8.11 文字列の内容を表示するプログラム (ポインタ版)  305(リスト8.11 5, 6行目)   
               リスト 8.13 正しいswap 関数の例  307(リスト8.13 3行目)   
               リスト 8.15 ポインタを使ったstr_copy 関数のプログラム  310(リスト8.15 1行目)   
               リスト 10.2 データの集計 (入力ファイルからデータを読み込む)  352(リスト10.2 9行目)   
               リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 5, 11行目)   
               リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 11行目)   
               リスト 10.5 データファイルへの出力  364(リスト10.5 9行目)   
               リスト 10.6 データの追加  366(リスト10.6 6行目)   
               リスト 10.7 fgets 関数を使用した例  370(リスト10.7 7, 14行目)   
               リスト 10.8 例外処理でgoto 文が有効な例  373(リスト10.8 3~5行目)   
               リスト 10.9 goto 文を使用しない例  374(リスト10.9 3~5行目)   
               リスト 10.10 ファイル入出力サンプル  375(リスト10.10 8行目)   
               リスト 10.12 stderr に置き換えたファイル入出力サンプル  377(リスト10.12 8行目)   
               リスト 11.1 main 関数の実装  387(リスト11.1 9, 11, 12行目)   
               リスト 11.2 データ取り出し関数の実装  389(リスト11.2 1行目)   
               リスト 11.3 夏日計数関数の実装  390(リスト11.3 5行目)   
               リスト 11.4 集計結果出力関数の実装  390(リスト11.4 4行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 39, 41, 42, 105, 138, 142行目)   
 */ (コメント終了)  36   
        使用事例  
               リスト 2.2 ソースコードの可読性を向上させるCプログラム  35(リスト2.2 5行目)   
               リスト 2.3 コメントの書き方(その1、複数行にわたって書く)  36(リスト2.3 6行目)   
               リスト 2.4 コメントの書き方(その2、命令文の後ろに書く)  36(リスト2.4 5~7行目)   
               リスト 2.5 コメントの書き方(その3、コンパイルエラーとなる例)  37(リスト2.5 5, 7~9行目)   
               リスト 2.6 コメントの書き方(その4、//を使って書く)  37(リスト2.6 8行目)   
               リスト 2.7 コンパイルエラーとなる誤ったソースコード  40(リスト2.7 5行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 80行目)   
 *= (乗算する)  91(表3.14)    99(表3.17)   
        使用事例  
               リスト 5.2 整数の正のべき乗を計算する関数(その2)  178(リスト5.2 7行目)   
               リスト 5.3 整数の正のべき乗を計算する関数(その3)  179(リスト5.3 9行目)   
               リスト 5.4 整数の正のべき乗を計算する関数(その4)  182(リスト5.4 24行目)   
               リスト 5.8 整数の正のべき乗を計算する関数(完全版)  185(リスト5.8 23行目)   
               リスト 5.9 組み合わせを求める関数 combi  187(リスト5.9 27, 32, 37行目)   
               リスト 5.17 組み合わせを求めるより簡潔なプログラム  201(リスト5.17 34行目)   
  ☝     +    (プラス)
 + (加算演算子)  46    93(表3.15)   
        + (加算演算子、浮動小数点型)  96   
        + (加算演算子、優先順位)  99(表3.17)   
        使用事例  
               リスト 1.1 2つの数を足し算するCプログラム  20(リスト1.1 9行目)   
               リスト 2.9 足し算のプログラム  45(リスト2.9 13行目)   
               リスト 2.10 四則演算のプログラム  46(リスト2.10 11行目)   
               リスト 3.8 変数を用いた計算  81(リスト3.8 13行目)   
               リスト 3.9 実行文後の変数の定義例  83(リスト3.9 11行目)   
               リスト 3.10 初期化していない変数の使用例(誤りのあるプログラム)  83(リスト3.10 10行目)   
               リスト 3.11 きちんとした変数定義をした例  85(リスト3.11 9行目)   
               リスト 3.13 整数の加算、減算、除算、余り  94(リスト3.13 9行目)   
               リスト 3.15 double 型の加算・減算  96(リスト3.15 9行目)   
               リスト 3.17 型変換による精度の消失  101(リスト3.17 10行目)   
               リスト 4.9 2次方程式の実数解を求める  143(リスト4.9 28, 29行目)   
               リスト 4.10 1から10までの和を求める  146(リスト4.10 9行目)   
               リスト 4.14 1から10までの和を求める  156(リスト4.14 11, 21行目)   
               リスト 4.20 無限ループとbreak の使用例  166(リスト4.20 10, 24行目)   
               リスト 5.12 関数の引数と個数と型の一致  195(リスト5.12 18行目)   
               リスト 6.7 平均値・分散・標準偏差 (その1)  236(リスト6.7 15行目)   
               リスト 6.8 平均値・分散・標準偏差 (その2)  238(リスト6.8 13行目)   
               リスト 6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249(リスト6.11 31行目)   
               リスト 6.12 行列の和  252(リスト6.12 18行目)   
               リスト 6.13 行列の積  255(リスト6.13 19, 29行目)   
               リスト 6.14 最も離れた席を探す  259(リスト6.14 31行目)   
               リスト 9.5 最も離れた席を探す (構造体配列版)  335(リスト9.5 31行目)   
               リスト 8.3 ポインタ演算のテスト(その1)  294(リスト8.3 11行目)   
               リスト 8.4 ポインタ演算のテスト(その2)  295(リスト8.4 11行目)   
               リスト 8.8 合計を求める (値のアクセスをポインタで行う版)  300(リスト8.8 15行目)   
               リスト 8.16 int 型の配列に格納されている数値をすべて合計する関数 (不完全版)  311(リスト8.16 7行目)   
               リスト 8.17 int 型の配列に格納されている数値をすべて合計する関数 (引数に配列の要素)  311(リスト8.17 7行目)   
               リスト 11.4 集計結果出力関数の実装  390(リスト11.4 12行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 107, 150行目)   
 + (符号)  99(表3.17)    64   
        + (符号、優先順位)  99(表3.17)   
 ++ (インクリメント)  99(表3.17)    148    149   
        ++ (優先順位)  99(表3.17)   
        使用事例  
               リスト 2.14 FizzBuzzゲームを行うプログラム  54(リスト2.14 7行目)   
               リスト 4.10 1から10までの和を求める  146(リスト4.10 7行目)   
               リスト 4.12 数当てゲーム  152(リスト4.12 10行目)   
               リスト 4.14 1から10までの和を求める  156(リスト4.14 12, 22行目)   
               リスト 4.17 do-while 文によるプログラム例  161(リスト4.17 9行目)   
               リスト 4.18 厄年ではない年齢を表示する  162(リスト4.18 11行目)   
               リスト 4.19 偶数の数表  164(リスト4.19 10行目)   
               リスト 4.20 無限ループとbreak の使用例  166(リスト4.20 15, 29行目)   
               リスト 4.21 goto 文による多重ループの強制脱出(掛け算問題)  169(リスト4.21 7, 9行目)   
               リスト 4.22 フラグを使った強制脱出(掛け算問題)  170(リスト4.22 8, 10, 12行目)   
               リスト 5.1 整数の正のべき乗を計算する関数(その1)  177(リスト5.1 9行目)   
               リスト 5.3 整数の正のべき乗を計算する関数(その3)  179(リスト5.3 19行目)   
               リスト 5.4 整数の正のべき乗を計算する関数(その4)  182(リスト5.4 9行目)   
               リスト 5.5 整数の正のべき乗を計算する関数(その5)  184(リスト5.5 9行目)   
               リスト 5.8 整数の正のべき乗を計算する関数(完全版)  185(リスト5.8 9行目)   
               リスト 5.9 組み合わせを求める関数 combi  187(リスト5.9 9, 11, 25, 30, 35行目)   
               リスト 5.17 組み合わせを求めるより簡潔なプログラム  201(リスト5.17 10, 12, 32行目)   
               リスト 5.21 自分自身が呼ばれた回数を返す関数 (誤りの例)  211(リスト5.21 5行目)   
               リスト 5.22 自分自身が呼ばれた回数を返す関数 (グローバル変数版)  211(リスト5.22 24行目)   
               リスト 5.23 自分自身が呼ばれた回数を返す関数 (static 変数版)  212(リスト5.23 23行目)   
               リスト 5.24 static 変数 x の初期化例 (正しい例)  213(リスト5.24 5行目)   
               リスト 5.25 static 変数 x の初期化例 (誤りの例)  214(リスト5.25 7行目)   
               リスト 6.4 配列の代入と参照 (全要素出力版)  230(リスト6.4 15行目)   
               リスト 6.5 配列とfor 文を用いた体重の最大値と最小値の検出  231(リスト6.5 17行目)   
               リスト 6.7 平均値・分散・標準偏差 (その1)  236(リスト6.7 13, 19, 26行目)   
               リスト 6.8 平均値・分散・標準偏差 (その2)  238(リスト6.8 11行目)   
               リスト 6.9 バブルソートによる並べ替え  245(リスト6.9 11, 16, 18, 30行目)   
               リスト 6.10 バブルソートによる並べ替え (マクロ使用版)  248(リスト6.10 13, 18, 20, 32行目)   
               リスト 6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249(リスト6.11 24, 29, 31, 43行目)   
               リスト 6.12 行列の和  252(リスト6.12 14, 16, 24, 26, 33, 35, 42, 44行目)   
               リスト 6.13 行列の積  255(リスト6.13 15, 17, 25, 27, 34, 36, 39, 47, 49行目)   
               リスト 6.14 最も離れた席を探す  259(リスト6.14 19, 24, 26行目)   
               リスト 7.7 文字列の長さを知るプログラム  274(リスト7.7 9行目)   
               リスト 7.9 文字列の比較を行うプログラム  276(リスト7.9 19行目)   
               リスト 7.11 文字列のコピーを行うプログラム  279(リスト7.11 13行目)   
               リスト 7.13 文字列の複写 (str_cpy 関数)と連結 (str_cat 関数)を行うプログラム  281(リスト7.13 11, 23, 30行目)   
               リスト 9.5 最も離れた席を探す (構造体配列版)  335(リスト9.5 20, 25, 27行目)   
               リスト 8.3 ポインタ演算のテスト(その1)  294(リスト8.3 9行目)   
               リスト 8.4 ポインタ演算のテスト(その2)  295(リスト8.4 9行目)   
               リスト 8.5 ポインタ演算のテスト(演算子による違い)  296(リスト8.5 9行目)   
               リスト 8.7 合計を求める (配列版)  299(リスト8.7 11行目)   
               リスト 8.8 合計を求める (値のアクセスをポインタで行う版)  300(リスト8.8 13行目)   
               リスト 8.9 合計を求める (よりCらしいプログラム)  301(リスト8.9 15行目)   
               リスト 8.10 文字列の内容を表示するプログラム (配列版)  304(リスト8.10 9行目)   
               リスト 8.11 文字列の内容を表示するプログラム (ポインタ版)  305(リスト8.11 9行目)   
               リスト 8.15 ポインタを使ったstr_copy 関数のプログラム  310(リスト8.15 10, 11行目)   
               リスト 8.16 int 型の配列に格納されている数値をすべて合計する関数 (不完全版)  311(リスト8.16 5行目)   
               リスト 8.17 int 型の配列に格納されている数値をすべて合計する関数 (引数に配列の要素)  311(リスト8.17 5行目)   
               リスト 10.1 データの集計 (手で入力作業をする版)  348(リスト10.1 9行目)   
               リスト 10.2 データの集計 (入力ファイルからデータを読み込む)  352(リスト10.2 17行目)   
               リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 21行目)   
               リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 25行目)   
               リスト 10.5 データファイルへの出力  364(リスト10.5 27行目)   
               リスト 10.7 fgets 関数を使用した例  370(リスト10.7 34行目)   
               リスト 11.3 夏日計数関数の実装  390(リスト11.3 8, 12, 16行目)   
               リスト 11.4 集計結果出力関数の実装  390(リスト11.4 9行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 45, 125, 129, 133, 147, 167行目)   
 ++ ポインタ  297   
 += (加える)  91(表3.14)    238   
        使用事例  
               リスト 4.11 sin, cosの三角関数  150(リスト4.11 11行目)   
               リスト 5.11 sqrt の計算と表示  193(リスト5.11 11行目)   
               リスト 5.23 自分自身が呼ばれた回数を返す関数 (static 変数版)  212(リスト5.23 12行目)   
               リスト 6.7 平均値・分散・標準偏差 (その1)  236(リスト6.7 21, 28行目)   
               リスト 6.8 平均値・分散・標準偏差 (その2)  238(リスト6.8 15, 16行目)   
               リスト 6.13 行列の積  255(リスト6.13 41行目)   
               リスト 8.7 合計を求める (配列版)  299(リスト8.7 13行目)   
               リスト 8.8 合計を求める (値のアクセスをポインタで行う版)  300(リスト8.8 15行目)   
               リスト 8.9 合計を求める (よりCらしいプログラム)  301(リスト8.9 15行目)   
               リスト 8.16 int 型の配列に格納されている数値をすべて合計する関数 (不完全版)  311(リスト8.16 7行目)   
               リスト 8.17 int 型の配列に格納されている数値をすべて合計する関数 (引数に配列の要素)  311(リスト8.17 7行目)   
               リスト 10.1 データの集計 (手で入力作業をする版)  348(リスト10.1 17行目)   
               リスト 10.2 データの集計 (入力ファイルからデータを読み込む)  352(リスト10.2 24行目)   
               リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 28行目)   
               リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 24行目)   
               リスト 10.5 データファイルへの出力  364(リスト10.5 26行目)   
               リスト 10.7 fgets 関数を使用した例  370(リスト10.7 33行目)   
  ☝     ,    (コンマ)
 , (コンマ演算子)  251(脚注19)   
        , (コンマ演算子、優先順位)  99(表3.17)   
        使用事例  
               リスト 4.12 数当てゲーム  152(リスト4.12 10行目)   
               リスト 6.7 平均値・分散・標準偏差 (その1)  236(リスト6.7 19, 26行目)   
               リスト 8.5 ポインタ演算のテスト(演算子による違い)  296(リスト8.5 12行目)   
 , (コンマ式)  152   
  ☝     -    (ハイフン)
 - (減算演算子)  46    93(表3.15)   
        - (減算演算子、浮動小数点型)  96   
        - (減算演算子、優先順位)  99(表3.17)   
        使用事例  
               リスト 2.10 四則演算のプログラム  46(リスト2.10 15行目)   
               リスト 3.4 文字の計算  72(リスト3.4 7行目)   
               リスト 3.5 文字の変換  73(リスト3.5 11行目)   
               リスト 3.7 丸め誤差  80(リスト3.7 10行目)   
               リスト 3.13 整数の加算、減算、除算、余り  94(リスト3.13 10行目)   
               リスト 3.14 %を用いない余りの計算  95(リスト3.14 9行目)   
               リスト 4.9 2次方程式の実数解を求める  143(リスト4.9 29行目)   
               リスト 5.9 組み合わせを求める関数 combi  187(リスト5.9 35行目)   
               リスト 5.11 sqrt の計算と表示  193(リスト5.11 24行目)   
               リスト 5.17 組み合わせを求めるより簡潔なプログラム  201(リスト5.17 24行目)   
               リスト 6.7 平均値・分散・標準偏差 (その1)  236(リスト6.7 28行目)   
               リスト 6.8 平均値・分散・標準偏差 (その2)  238(リスト6.8 20行目)   
               リスト 6.10 バブルソートによる並べ替え (マクロ使用版)  248(リスト6.10 18行目)   
               リスト 6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249(リスト6.11 29行目)   
               リスト 7.9 文字列の比較を行うプログラム  276(リスト7.9 10行目)   
               リスト 9.5 最も離れた席を探す (構造体配列版)  335(リスト9.5 29, 30行目)   
               リスト 8.6 ポインタどうしの減算  297(リスト8.6 11~13行目)   
               リスト 11.3 夏日計数関数の実装  390(リスト11.3 5行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 122行目)   
 - (符号)  
        - (符号、優先順位)  99(表3.17)   
        使用事例  
               リスト 4.9 2次方程式の実数解を求める  143(リスト4.9 19, 28, 29行目)   
               リスト 6.6 配列を使用しない体重の最大値と最小値の検出  233(リスト6.6 14行目)   
 -- (デクリメント)  148   
        -- (優先順位)  99(表3.17)   
        使用事例  
               リスト 4.12 数当てゲーム  152(リスト4.12 10行目)   
               リスト 5.2 整数の正のべき乗を計算する関数(その2)  178(リスト5.2 5行目)   
               リスト 5.3 整数の正のべき乗を計算する関数(その3)  179(リスト5.3 7行目)   
               リスト 5.4 整数の正のべき乗を計算する関数(その4)  182(リスト5.4 22行目)   
               リスト 5.8 整数の正のべき乗を計算する関数(完全版)  185(リスト5.8 21行目)   
               リスト 6.7 平均値・分散・標準偏差 (その1)  236(リスト6.7 28行目)   
 -= (減じる)  91(表3.14)   
 -> (矢印演算子)  336   
        -> (優先順位)  99(表3.17)   
        使用事例  
               リスト 9.6 構造体のメンバをポインタを使って参照する  337(リスト9.6 15, 16, 18行目)   
               リスト 11.2 データ取り出し関数の実装  389(リスト11.2 7, 10行目)   
               リスト 11.3 夏日計数関数の実装  390(リスト11.3 3, 5, 6, 8, 10, 12, 14, 16行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 111, 114, 122, 123, 125, 127, 129, 131, 133行目)   
 オプション  
        -c  38   
        -lm(エルエム)  138    236    259(脚注21)   
        -o  38   
 -数値~数値  
        -128~127 -27~27-1  64(表3.4)   
        -32768~32767 -215~215-1  64(表3.4)   
        -2147483648~2147483647 -231~231-1  64(表3.4)    75   
        -9223372036854775808~9223372036854775807 -263~263-1  64(表3.4)   
        -3.4028×1038~-1.1755×10-38 0.0 1.1755×10-38~3.4028×1038 float型の範囲  65(表3.5)   
        -1.7977×10308~-2.2251×10-308 0.0 2.2251×10-308~1.7977×10308 double型の範囲  65(表3.5)   
        -1.1897×104932~-3.3621×10-4932 0.0 3.3621×10-4932~1.1897×104932 long double型の範囲  65(表3.5)   
  ☝     .    (ピリオド、ドット)
 . (構造体メンバの区切り)  320    323   
 . (ドット演算子)  99(表3.17)   
        . (優先順位)  99(表3.17)   
        使用事例  
               リスト 9.2 共用体の利用 (その1)  325(リスト9.2 29, 33行目)   
               リスト 9.3 共用体の利用 (その2)  327(リスト9.3 12, 14, 17, 18行目)   
               リスト 9.4 共用体で同じメモリを参照する  328(リスト9.4 11, 13, 14行目)   
               リスト 9.5 最も離れた席を探す (構造体配列版)  335(リスト9.5 22, 29, 30, 35, 36行目)   
               リスト 11.1 main 関数の実装  387(リスト11.1 17~19行目)   
               リスト 11.4 集計結果出力関数の実装  390(リスト11.4 12, 13行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 47~49, 150, 151, 170, 171, 179行目)   
 拡張子  
        .c  182   
        .ccp  182(脚注11)   
        .exe  31   
        .h  23(Coffee Break 1.3)    182(脚注11)   
 プログラムの実行  
        ./a.out 実行可能プログラム  25   
  ☝     /    (スラッシュ)
 / (除算演算子)  46    93(表3.15)   
        / (除算演算子、浮動小数点型)  96   
        / (除算演算子、優先順位)  99(表3.17)   
        使用事例  
               リスト 2.10 四則演算のプログラム  46(リスト2.10 23行目)   
               リスト 2.11 2つの整数が割りきれる場合答えを表示するプログラム  49(リスト2.11 19行目)   
               リスト 2.12 割りきれない場合の処理を追加したプログラム  50(リスト2.12 15行目)   
               リスト 2.13 入力された値が0でないかチェックするプログラム  51(リスト2.13 18行目)   
               リスト 3.13 整数の加算、減算、除算、余り  94(リスト3.13 12行目)   
               リスト 3.14 %を用いない余りの計算  95(リスト3.14 19行目)   
               リスト 4.9 2次方程式の実数解を求める  143(リスト4.9 19, 28, 29行目)   
               リスト 4.13 数表  154(リスト4.13 13行目)   
               リスト 4.19 偶数の数表  164(リスト4.19 17行目)   
               リスト 5.9 組み合わせを求める関数 combi  187(リスト5.9 40行目)   
               リスト 5.11 sqrt の計算と表示  193(リスト5.11 26行目)   
               リスト 5.17 組み合わせを求めるより簡潔なプログラム  201(リスト5.17 24行目)   
               リスト 6.7 平均値・分散・標準偏差 (その1)  236(リスト6.7 24, 30行目)   
               リスト 6.8 平均値・分散・標準偏差 (その2)  238(リスト6.8 19, 20行目)   
               リスト 10.1 データの集計 (手で入力作業をする版)  348(リスト10.1 22行目)   
               リスト 10.2 データの集計 (入力ファイルからデータを読み込む)  352(リスト10.2 29行目)   
               リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 33行目)   
               リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 30行目)   
               リスト 10.5 データファイルへの出力  364(リスト10.5 32行目)   
               リスト 10.7 fgets 関数を使用した例  370(リスト10.7 39行目)   
               リスト 11.4 集計結果出力関数の実装  390(リスト11.4 9行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 45, 147, 167行目)   
 /* (コメント開始)  36   
        使用事例  
               リスト 2.2 ソースコードの可読性を向上させるCプログラム  35(リスト2.2 5行目)   
               リスト 2.3 コメントの書き方(その1、複数行にわたって書く)  36(リスト2.3 5行目)   
               リスト 2.4 コメントの書き方(その2、命令文の後ろに書く)  36(リスト2.4 5行目)   
               リスト 2.5 コメントの書き方(その3、コンパイルエラーとなる例)  37(リスト2.5 5, 6行目)   
               リスト 2.6 コメントの書き方(その4、//を使って書く)  37(リスト2.6 6行目)   
               リスト 2.7 コンパイルエラーとなる誤ったソースコード  40(リスト2.7 5行目)   
 // (行内コメント)  37   
        リスト2.6 コメントの書き方(その4、//を使って書く)  37   
 /= (除算する)  91(表3.14)   
  ☝     :    (コロン)
 : (三項演算子)  
        式1 ? 式2 : 式3 (三項演算子)  173   
        使用事例  
               リスト 5.13 max 関数  196(リスト5.13 17行目)   
               リスト 5.14 誤りのあるmax 関数の例  198(リスト5.14 24, 29行目)   
               リスト 5.15 正しいmax 関数の例  198(リスト5.15 24, 29行目)   
               リスト 5.16 総称選択を用いたmax 関数  200(リスト5.16 26, 31行目)   
  ☝     ;    (セミコロン)
 ; (セミコロン)  34    89   
  ☝     <    (小なり)
 インクルードファイル  
        < (インクルードファイルの指定開始)  182   
 関係演算子  
        < (関係演算子)  99(表3.17)    110(表4.4)   
               < (関係演算子、優先順位)  99(表3.17)   
               使用事例  
                      リスト 4.1 関係演算子  110(リスト4.1 18行目)   
                      リスト 4.2 文字の比較  112(リスト4.2 18行目)   
                      リスト 4.11 sin, cosの三角関数  150(リスト4.11 11行目)   
                      リスト 4.12 数当てゲーム  152(リスト4.12 10, 19行目)   
                      リスト 4.14 1から10までの和を求める  156(リスト4.14 9行目)   
                      リスト 4.17 do-while 文によるプログラム例  161(リスト4.17 11行目)   
                      リスト 4.21 goto 文による多重ループの強制脱出(掛け算問題)  169(リスト4.21 7, 9行目)   
                      リスト 4.22 フラグを使った強制脱出(掛け算問題)  170(リスト4.22 8, 10, 12行目)   
                      リスト 6.4 配列の代入と参照 (全要素出力版)  230(リスト6.4 15行目)   
                      リスト 6.5 配列とfor 文を用いた体重の最大値と最小値の検出  231(リスト6.5 17行目)   
                      リスト 6.7 平均値・分散・標準偏差 (その1)  236(リスト6.7 13, 19, 26行目)   
                      リスト 6.8 平均値・分散・標準偏差 (その2)  238(リスト6.8 11行目)   
                      リスト 6.9 バブルソートによる並べ替え  245(リスト6.9 11, 16, 18, 20, 30行目)   
                      リスト 6.10 バブルソートによる並べ替え (マクロ使用版)  248(リスト6.10 13, 18, 20, 32行目)   
                      リスト 6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249(リスト6.11 15, 19, 24, 29, 31, 43行目)   
                      リスト 6.12 行列の和  252(リスト6.12 14, 16, 24, 26, 33, 35, 42, 44行目)   
                      リスト 6.13 行列の積  255(リスト6.13 15, 17, 25, 27, 34, 39, 47, 49行目)   
                      リスト 6.14 最も離れた席を探す  259(リスト6.14 19, 24, 26, 32行目)   
                      リスト 9.5 最も離れた席を探す (構造体配列版)  335(リスト9.5 20, 25, 27行目)   
                      リスト 8.3 ポインタ演算のテスト(その1)  294(リスト8.3 9行目)   
                      リスト 8.4 ポインタ演算のテスト(その2)  295(リスト8.4 9行目)   
                      リスト 8.5 ポインタ演算のテスト(演算子による違い)  296(リスト8.5 9行目)   
                      リスト 8.7 合計を求める (配列版)  299(リスト8.7 11行目)   
                      リスト 8.8 合計を求める (値のアクセスをポインタで行う版)  300(リスト8.8 13行目)   
                      リスト 8.16 int 型の配列に格納されている数値をすべて合計する関数 (不完全版)  311(リスト8.16 5行目)   
                      リスト 8.17 int 型の配列に格納されている数値をすべて合計する関数 (引数に配列の要素)  311(リスト8.17 5行目)   
                      リスト 11.4 集計結果出力関数の実装  390(リスト11.4 9行目)   
                      リスト 11.5 夏日判定プログラム  391(リスト11.5 45, 147, 167行目)   
        <= (関係演算子)  99(表3.17)    110(表4.4)   
               <= (関係演算子、優先順位)  99(表3.17)   
               使用事例  
                      リスト 2.14 FizzBuzzゲームを行うプログラム  54(リスト2.14 7行目)   
                      リスト 4.3 ANDとORの使用例  112(リスト4.3 12, 14, 16, 18行目)   
                      リスト 4.10 1から10までの和を求める  146(リスト4.10 7行目)   
                      リスト 4.13 数表  154(リスト4.13 10行目)   
                      リスト 4.14 1から10までの和を求める  156(リスト4.14 19行目)   
                      リスト 4.18 厄年ではない年齢を表示する  162(リスト4.18 11行目)   
                      リスト 4.19 偶数の数表  164(リスト4.19 10行目)   
                      リスト 5.1 整数の正のべき乗を計算する関数(その1)  177(リスト5.1 7行目)   
                      リスト 5.3 整数の正のべき乗を計算する関数(その3)  179(リスト5.3 19行目)   
                      リスト 5.4 整数の正のべき乗を計算する関数(その4)  182(リスト5.4 9行目)   
                      リスト 5.5 整数の正のべき乗を計算する関数(その5)  184(リスト5.5 9行目)   
                      リスト 5.8 整数の正のべき乗を計算する関数(完全版)  185(リスト5.8 9行目)   
                      リスト 5.9 組み合わせを求める関数 combi  187(リスト5.9 9, 11, 25, 30, 35行目)   
                      リスト 5.11 sqrt の計算と表示  193(リスト5.11 11行目)   
                      リスト 5.17 組み合わせを求めるより簡潔なプログラム  201(リスト5.17 10, 12, 32行目)   
                      リスト 6.3 配列の代入と参照 (入力チェック組込版:23行目以降は省略)  230(リスト6.3 18行目)   
                      リスト 6.5 配列とfor 文を用いた体重の最大値と最小値の検出  231(リスト6.5 25行目)   
                      リスト 6.6 配列を使用しない体重の最大値と最小値の検出  233(リスト6.6 26, 28, 30行目)   
                      リスト 11.3 夏日計数関数の実装  390(リスト11.3 3行目)   
                      リスト 11.5 夏日判定プログラム  391(リスト11.5 120行目)   
 シフト演算子  
        <<= (シフト演算子) 左にシフトし代入する  91(表3.14)   
        << (シフト演算子)  99(表3.17)   
               << (シフト演算子、優先順位)  99(表3.17)   
 標準ヘッダファイル  
        <complex.h>  87    88   
        <float.h>  66(Coffee Break 3.2)    232   
        <limits.h>  66(Coffee Break 3.2)   
        <math.h>  25(Coffee Break 1.4)    138    139    182    192(脚注15)    236   
        <stdbool.h>  87   
        <stdint.h>  64(脚注10)   
        <stdio.h>  23(Coffee Break 1.3)    25(Coffee Break 1.4)    34    181    182   
        <string.h>  270   
        定義されている関数  
               <float.h>  
                      DBL_DIG マクロ  66(Coffee Break 3.2)   
                      DBL_MAX マクロ  66(Coffee Break 3.2)    233   
                      DBL_MIN マクロ  66(Coffee Break 3.2)   
                      FLT_DIG マクロ  66(Coffee Break 3.2)   
                      FLT_MAX マクロ  66(Coffee Break 3.2)   
                      FLT_MIN マクロ  66(Coffee Break 3.2)   
                      LDBL_DIG マクロ  66(Coffee Break 3.2)   
                      LDBL_MAX マクロ  66(Coffee Break 3.2)   
                      LDBL_MIN マクロ  66(Coffee Break 3.2)   
               <limits.h>  
                      CHAR_MAX マクロ  66(Coffee Break 3.2)   
                      CHAR_MIN マクロ  66(Coffee Break 3.2)   
                      INT_MAX マクロ  66(Coffee Break 3.2)   
                      INT_MIN マクロ  66(Coffee Break 3.2)   
                      LLONG_MAX マクロ  66(Coffee Break 3.2)   
                      LLONG_MIN マクロ  66(Coffee Break 3.2)   
                      LONG_MAX マクロ  66(Coffee Break 3.2)   
                      LONG_MIN マクロ  66(Coffee Break 3.2)   
                      SHRT_MAX マクロ  66(Coffee Break 3.2)   
                      SHRT_MIN マクロ  66(Coffee Break 3.2)   
                      UCHAR_MAX マクロ  66(Coffee Break 3.2)   
                      UINT_MAX マクロ  66(Coffee Break 3.2)   
                      ULLONG_MAX マクロ  66(Coffee Break 3.2)   
                      ULONG_MAX マクロ  66(Coffee Break 3.2)   
                      USHRT_MAX マクロ  66(Coffee Break 3.2)   
               <math.h>  
                      acos(x) 関数 cos-1(x)  139(表4.8)   
                      asin(x) 関数 sin-1(x)  139(表4.8)   
                      atan(x) 関数 tan-1(x)  139(表4.8)   
                      atan2(x,y) 関数 tan-1(y/x)  139(表4.8)   
                      ceil(x) 関数 x以上の最小の整数。ただし、関数値はdoubleになる  139(表4.8)   
                      cos(x) 関数  139(表4.8)    150(リスト4.11 14行目)    182   
                      exp(x) 関数 ex (指数関数)  139(表4.8)   
                      fabs(x) 関数 |x| (絶対値)  139(表4.8)   
                      floor(x) 関数 x以下の最大の整数。ただし、関数値はdoubleになる  139(表4.8)   
                      fmod(x) 関数 x/yの浮動小数点の余り。関数値の符号はxと同じ  139(表4.8)   
                      log(x) 関数 ln(x) (自然対数)  139(表4.8)   
                      log10(x) 関数 log10(x)  139(表4.8)   
                      pow(x,y) 関数 xy  139(表4.8)    145(Coffee Break 4.3)    176   
                      sin(x) 関数  139(表4.8)    150(リスト4.11 13行目)    182   
                      sqrt(x) 関数 \( \sqrt{x} \)  139(表4.8)    237(リスト6.7,31行目)    143    144(リスト4.9 28-29行目)    155(リスト4.13 15行目)    260   
                      tan(x) 関数  139(表4.8)   
               <stddef.h>  
                      ptrdiff_t 符号付き整数型 ポインタ変数の差を十分確保できる大きさ  324(脚注28)   
                      size_t 符号なし整数型 sizeof 演算子が生成する大きさ  324(脚注28)   
               <stdio.h>  
                      EOF マクロ  158    158(リスト4.15 6行目)    159    352    358(Coffee Break 10.1)    359    368    370    371   
                      fclose 関数 ファイルを閉じる  352    358(Coffee Break 10.1)    359(Coffee Break 10.1,(脚注b))    371   
                      feof(fp) 関数 ファイルの終端を判断する関数  368   
                      ferror(fp) 関数 エラーの発生を判断する関数  368   
                      fflush 関数 バッファに格納されているデータを書き出す  358(Coffee Break 10.1)   
                      fgetc(fp) 関数 ファイルから1文字入力する関数  368   
                      fgets(*s,size,*fp) 関数 ファイル(fp)から1行入力し、文字列(s)(長さsize)にセットする  273    369    370   
                      FILE 構造体  350    357(Coffee Break 10.1)    358(Coffee Break 10.1)   
                      FILENAME_MAX マクロ ファイル名の最大の長さ  354    354(脚注11)   
                      fopen 関数 ファイルをオープンする  350    354    357(Coffee Break 10.1)    362    363    366   
                      FOPEN_MAX マクロ 同時に開くことのできるファイルの最大数  362   
                      fprintf 関数 printf 関数のファイル版  363    365   
                      fputc(fp) 関数 ファイルに1文字出力する関数  368   
                      fputs(str,fp) 関数 ファイル(fp)に文字列(str)を出力する  375   
                      fscanf 関数 ファイルから入力する  351    352    359    369    370   
                      getchar 関数  157    158(リスト4.15 9行目)   
                      gets(str) 関数 標準入力から改行文字までの文字列を読み込み、文字列strに格納する  376   
                      printf 関数  25(Coffee Break 1.4)    34    182    270   
                      putchar 関数  157    158(リスト4.15 8行目)    304   
                      puts(str) 関数 文字列strを標準出力へ出力する。文字列strの最後のターミネータ(0)は改行文字として出力される  376   
                      scanf 関数  34    352    354(脚注11)    355   
                      sscanf(str,fmt, ...) 関数 文字列strからフォーマットfmtに従ってデータを取り出す  388   
               <stdlib.h>  
                      exit(s) 関数 プログラムを終了させる。sは終了コード  142(Coffee Break 4.2)    350    353   
                      EXIT_FAILURE マクロ  142(Coffee Break 4.2)    351   
                      EXIT_SUCCESS マクロ  142(Coffee Break 4.2)    351    353   
                      malloc(size) 関数 sizeバイトのメモリ領域を割り当てる  227(脚注3)   
                      qsort 関数 クイックソートを行う  338(脚注24)   
               <string.h>  
                      memcmp(*s1,*s2,size) 関数 メモリ領域s1とs2をsizeバイト分比較する  322    322(脚注11)   
                      strcat(*s1,*s2) 関数 文字列s1の後に文字列s2を連結する  283(Coffee Break 7.2)   
                      strcat_s(*s1,size,*s2) 関数 文字列s1(長さsize)の後に文字列s2を連結する  283(Coffee Break 7.2)   
                      strcmp(*s1,*s2) 関数 文字列s1と文字列s2を比較する  275    276(リスト7.8 16行目)   
                      strcpy(*s1,*s2) 関数 文字列s2を文字列s1にコピーする  270    271(リスト7.3 8行目)    278    283(Coffee Break 7.2)   
                      strcpy_s(*s1,size,*s2) 関数 文字列s2を文字列s1(sizeバイト)へコピーする  283(Coffee Break 7.2)   
                      strlen(*s) 関数 文字列sの長さを返す  273    274(リスト 7.6 12行目)    284   
               <time.h>  
                      tm 構造体  330   
  ☝     =    (イコール)
 関係演算子  
        == (関係演算子)  48    110(表4.4)    110(脚注2)    113   
               == (関係演算子、優先順位)  99(表3.17)   
               使用事例  
                      リスト 2.11 2つの整数が割りきれる場合答えを表示するプログラム  49(リスト2.11 17行目)   
                      リスト 2.12 割りきれない場合の処理を追加したプログラム  50(リスト2.12 18行目)   
                      リスト 2.13 入力された値が0でないかチェックするプログラム  51(リスト2.13 21行目)   
                      リスト 2.14 FizzBuzzゲームを行うプログラム  54(リスト2.14 9, 13, 17行目)   
                      リスト 3.7 丸め誤差  80(リスト3.7 11行目)   
                      リスト 4.1 関係演算子  110(リスト4.1 12行目)   
                      リスト 4.2 文字の比較  112(リスト4.2 10, 12, 14, 16行目)   
                      リスト 4.3 ANDとORの使用例  112(リスト4.3 20行目)   
                      リスト 4.4 偶数か奇数かの判断  125(リスト4.4 11行目)   
                      リスト 4.8 半径1の円周上の座標を求める  139(リスト4.8 15, 20行目)   
                      リスト 4.9 2次方程式の実数解を求める  143(リスト4.9 11, 13, 30行目)   
                      リスト 4.18 厄年ではない年齢を表示する  162(リスト4.18 16, 20, 24, 32, 36, 40行目)   
                      リスト 4.19 偶数の数表  164(リスト4.19 13行目)   
                      リスト 4.22 フラグを使った強制脱出(掛け算問題)  170(リスト4.22 23, 26行目)   
                      リスト 7.8 文字列の比較を行うプログラム (標準関数を使用)  275(リスト7.8 16行目)   
                      リスト 7.9 文字列の比較を行うプログラム  276(リスト7.9 15, 35行目)   
                      リスト 7.13 文字列の複写 (str_cpy 関数)と連結 (str_cat 関数)を行うプログラム  281(リスト7.13 9, 21, 28行目)   
                      リスト 8.15 ポインタを使ったstr_copy 関数のプログラム  310(リスト8.15 6行目)   
                      リスト 10.1 データの集計 (手で入力作業をする版)  348(リスト10.1 13行目)   
                      リスト 10.2 データの集計 (入力ファイルからデータを読み込む)  352(リスト10.2 11, 20行目)   
                      リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 15, 24行目)   
                      リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 15行目)   
                      リスト 10.5 データファイルへの出力  364(リスト10.5 11, 16行目)   
                      リスト 10.6 データの追加  366(リスト10.6 8行目)   
                      リスト 10.7 fgets 関数を使用した例  370(リスト10.7 18, 27行目)   
                      リスト 10.8 例外処理でgoto 文が有効な例  373(リスト10.8 8~10行目)   
                      リスト 10.9 goto 文を使用しない例  374(リスト10.9 8, 12, 17行目)   
                      リスト 10.10 ファイル入出力サンプル  375(リスト10.10 11, 17行目)   
                      リスト 10.12 stderr に置き換えたファイル入出力サンプル  377(リスト10.12 11, 17行目)   
                      リスト 11.1 main 関数の実装  387(リスト11.1 38行目)   
                      リスト 11.5 夏日判定プログラム  391(リスト11.5 68行目)   
 代入演算子  
        = (代入する)  42    83    91(表3.14)    110(脚注2)   
               = (代入する)演算子は演算結果を持つ  160(脚注51)   
  ☝     >    (大なり)
 インクルードファイル  
        > (インクルードファイルの指定終了)  182   
 関係演算子  
        > (関係演算子)  110(表4.4)   
               > (関係演算子、優先順位)  99(表3.17)   
               使用事例  
                      リスト 4.1 関係演算子  110(リスト4.1 22行目)   
                      リスト 4.12 数当てゲーム  152(リスト4.12 15行目)   
                      リスト 5.2 整数の正のべき乗を計算する関数(その2)  178(リスト5.2 5行目)   
                      リスト 5.3 整数の正のべき乗を計算する関数(その3)  179(リスト5.3 7行目)   
                      リスト 5.4 整数の正のべき乗を計算する関数(その4)  182(リスト5.4 22行目)   
                      リスト 5.8 整数の正のべき乗を計算する関数(完全版)  185(リスト5.8 21行目)   
                      リスト 5.13 max 関数  196(リスト5.13 17行目)   
                      リスト 6.3 配列の代入と参照 (入力チェック組込版:23行目以降は省略)  230(リスト6.3 18行目)   
                      リスト 6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249(リスト6.11 15, 19行目)   
                      リスト 10.1 データの集計 (手で入力作業をする版)  348(リスト10.1 20行目)   
                      リスト 10.2 データの集計 (入力ファイルからデータを読み込む)  352(リスト10.2 27行目)   
                      リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 31行目)   
                      リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 28行目)   
                      リスト 10.5 データファイルへの出力  364(リスト10.5 30行目)   
                      リスト 10.7 fgets 関数を使用した例  370(リスト10.7 37行目)   
                      リスト 11.1 main 関数の実装  387(リスト11.1 22, 31行目)   
                      リスト 11.5 夏日判定プログラム  391(リスト11.5 52, 61行目)   
        >= (関係演算子)  110(表4.4)   
               >= (関係演算子、優先順位)  99(表3.17)   
               使用事例  
                      リスト 4.1 関係演算子  110(リスト4.1 16, 24行目)   
                      リスト 4.3 ANDとORの使用例  112(リスト4.3 12, 14, 16, 18行目)   
                      リスト 4.9 2次方程式の実数解を求める  143(リスト4.9 26行目)   
                      リスト 4.20 無限ループとbreak の使用例  166(リスト4.20 11, 25行目)   
                      リスト 5.11 sqrt の計算と表示  193(リスト5.11 24行目)   
                      リスト 6.5 配列とfor 文を用いた体重の最大値と最小値の検出  231(リスト6.5 20行目)   
                      リスト 6.6 配列を使用しない体重の最大値と最小値の検出  233(リスト6.6 18, 20, 22行目)   
                      リスト 11.3 夏日計数関数の実装  390(リスト11.3 6, 10, 14行目)   
                      リスト 11.5 夏日判定プログラム  391(リスト11.5 123, 127, 131行目)   
 シフト演算子  
        >>= (シフト演算子) 右にシフトし代入する  91(表3.14)   
        >> (シフト演算子) 右にシフトする  99(表3.17)   
               >> (シフト演算子、優先順位)  99(表3.17)   
 プロンプト  
        > (プロンプト)  25(脚注62)   
  ☝     ?    (疑問符、クエスチョンマーク)
 三項演算子  
        式1 ? 式2 : 式3 (三項演算子)  173   
        使用事例  
               リスト 5.13 max 関数  196(リスト5.13 17行目)   
               リスト 5.14 誤りのあるmax 関数の例  198(リスト5.14 24, 29行目)   
               リスト 5.15 正しいmax 関数の例  198(リスト5.15 24, 29行目)   
               リスト 5.16 総称選択を用いたmax 関数  200(リスト5.16 26, 31行目)   
  ☝     [    (左大括弧、大括弧開き、ブラケット)
 配列  
        [ ]  99(表3.17)   
        [ (配列の添字の指定)  225    334   
        使用事例  
               リスト 6.2 配列を使ったプログラム  225(リスト6.2 6行目)   
               リスト 6.3 配列の代入と参照 (入力チェック組込版:23行目以降は省略)  230(リスト6.3 6行目)   
               リスト 6.4 配列の代入と参照 (全要素出力版)  230(リスト6.4 6行目)   
               リスト 6.5 配列とfor 文を用いた体重の最大値と最小値の検出  231(リスト6.5 8行目)   
               リスト 6.7 平均値・分散・標準偏差 (その1)  236(リスト6.7 6行目)   
               リスト 6.9 バブルソートによる並べ替え  245(リスト6.9 6行目)   
               リスト 6.10 バブルソートによる並べ替え (マクロ使用版)  248(リスト6.10 8行目)   
               リスト 6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249(リスト6.11 21行目)   
               リスト 6.12 行列の和  252(リスト6.12 8~10行目)   
               リスト 6.13 行列の積  255(リスト6.13 9~11行目)   
               リスト 6.14 最も離れた席を探す  259(リスト6.14 8, 9行目)   
               リスト 7.2 文字配列 (char 型の配列) に文字列を格納する  270(リスト7.2 5行目)   
               リスト 7.3 配列に文字配列に格納する (標準関数を利用)  271(リスト7.3 6行目)   
               リスト 7.4 文字配列の終端がわからないプログラム  271(リスト7.4 5行目)   
               リスト 7.6 文字列の長さを知るプログラム (標準関数を使用)  274(リスト7.6 6行目)   
               リスト 7.7 文字列の長さを知るプログラム  274(リスト7.7 3, 17行目)   
               リスト 7.8 文字列の比較を行うプログラム (標準関数を使用)  275(リスト7.8 6, 7行目)   
               リスト 7.9 文字列の比較を行うプログラム  276(リスト7.9 3, 25, 26行目)   
               リスト 7.10 文字列のコピーを行うプログラム (標準関数を使用)  278(リスト7.10 6, 7行目)   
               リスト 7.11 文字列のコピーを行うプログラム  279(リスト7.11 3, 19, 20行目)   
               リスト 7.12 文字列の連結を行うプログラム (標準関数を使用)  280(リスト7.12 6, 7, 8行目)   
               リスト 7.13 文字列の複写 (str_cpy 関数)と連結 (str_cat 関数)を行うプログラム  281(リスト7.13 3, 15, 36~38行目)   
               リスト 8.6 ポインタどうしの減算  297(リスト8.6 5行目)   
               リスト 8.7 合計を求める (配列版)  299(リスト8.7 6行目)   
               リスト 8.8 合計を求める (値のアクセスをポインタで行う版)  300(リスト8.8 6行目)   
               リスト 8.9 合計を求める (よりCらしいプログラム)  301(リスト8.9 5行目)   
               リスト 8.10 文字列の内容を表示するプログラム (配列版)  304(リスト8.10 6行目)   
               リスト 8.14 文字列をコピーする関数str_copy を呼び出す  309(リスト8.14 3, 4行目)   
               リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 10行目)   
               リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 10, 5行目)   
               リスト 10.7 fgets 関数を使用した例  370(リスト10.7 12, 13行目)   
               リスト 10.10 ファイル入出力サンプル  375(リスト10.10 9行目)   
               リスト 10.11 画面入出力サンプル  376(リスト10.11 3行目)   
               リスト 10.12 stderr に置き換えたファイル入出力サンプル  377(リスト10.12 9行目)   
               リスト 11.1 main 関数の実装  387(リスト11.1 10行目)   
               リスト 11.2 データ取り出し関数の実装  389(リスト11.2 3行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 28, 40行目)   
  ☝     \    (逆スラッシュ)
 \ (逆スラッシュ)  35    70   
 \" (ダブルクォーテーション)  272(Coffee Break 7.1)   
        使用事例  
               リスト 7.5 エスケープシーケンスを使った文字の例  273(リスト7.5 6行目)   
 \' (シングルクォーテーション)  272(Coffee Break 7.1)   
        使用事例  
               リスト 3.3 引用文字の表示  70(リスト3.3 7行目)   
               リスト 7.5 エスケープシーケンスを使った文字の例  273(リスト7.5 7行目)   
 \0 (NULL文字)  272(Coffee Break 7.1)    274    275    310   
        使用事例  
               リスト 7.2 文字配列 (char 型の配列) に文字列を格納する  270(リスト7.2 12行目)   
               リスト 7.7 文字列の長さを知るプログラム  274(リスト7.7 7行目)   
               リスト 7.9 文字列の比較を行うプログラム  276(リスト7.9 15行目)   
               リスト 7.11 文字列のコピーを行うプログラム  279(リスト7.11 9行目)   
               リスト 7.13 文字列の複写 (str_cpy 関数)と連結 (str_cat 関数)を行うプログラム  281(リスト7.13 9, 21, 28行目)   
               リスト 8.11 文字列の内容を表示するプログラム (ポインタ版)  305(リスト8.11 9行目)   
               リスト 8.15 ポインタを使ったstr_copy 関数のプログラム  310(リスト8.15 6行目)   
 \n (改行記号)  35    274    365   
 \uh0h1h2h3 (ユニコード(h0h1h2h3))  272(Coffee Break 7.1(リスト7.5 8行目))   
        使用事例  
               リスト 7.5 エスケープシーケンスを使った文字の例  273(リスト7.5 8行目)   
  ☝     ]    (右大括弧、大括弧閉じ、ブラケット)
 配列  
        ] (配列の添字の指定)  225    334   
        使用事例  
               リスト 6.2 配列を使ったプログラム  225(リスト6.2 6行目)   
               リスト 6.3 配列の代入と参照 (入力チェック組込版:23行目以降は省略)  230(リスト6.3 6行目)   
               リスト 6.4 配列の代入と参照 (全要素出力版)  230(リスト6.4 6行目)   
               リスト 6.5 配列とfor 文を用いた体重の最大値と最小値の検出  231(リスト6.5 8行目)   
               リスト 6.7 平均値・分散・標準偏差 (その1)  236(リスト6.7 6行目)   
               リスト 6.9 バブルソートによる並べ替え  245(リスト6.9 6行目)   
               リスト 6.10 バブルソートによる並べ替え (マクロ使用版)  248(リスト6.10 8行目)   
               リスト 6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249(リスト6.11 21行目)   
               リスト 6.12 行列の和  252(リスト6.12 8~10行目)   
               リスト 6.13 行列の積  255(リスト6.13 9~11行目)   
               リスト 6.14 最も離れた席を探す  259(リスト6.14 8, 9行目)   
               リスト 7.2 文字配列 (char 型の配列) に文字列を格納する  270(リスト7.2 5行目)   
               リスト 7.3 配列に文字配列に格納する (標準関数を利用)  271(リスト7.3 6行目)   
               リスト 7.4 文字配列の終端がわからないプログラム  271(リスト7.4 5行目)   
               リスト 7.6 文字列の長さを知るプログラム (標準関数を使用)  274(リスト7.6 6行目)   
               リスト 7.7 文字列の長さを知るプログラム  274(リスト7.7 3, 17行目)   
               リスト 7.8 文字列の比較を行うプログラム (標準関数を使用)  275(リスト7.8 6, 7行目)   
               リスト 7.9 文字列の比較を行うプログラム  276(リスト7.9 3, 25, 26行目)   
               リスト 7.10 文字列のコピーを行うプログラム (標準関数を使用)  278(リスト7.10 6, 7行目)   
               リスト 7.11 文字列のコピーを行うプログラム  279(リスト7.11 3, 19, 20行目)   
               リスト 7.12 文字列の連結を行うプログラム (標準関数を使用)  280(リスト7.12 6, 7, 8行目)   
               リスト 7.13 文字列の複写 (str_cpy 関数)と連結 (str_cat 関数)を行うプログラム  281(リスト7.13 3, 15, 36~38行目)   
               リスト 8.6 ポインタどうしの減算  297(リスト8.6 5行目)   
               リスト 8.7 合計を求める (配列版)  299(リスト8.7 6行目)   
               リスト 8.8 合計を求める (値のアクセスをポインタで行う版)  300(リスト8.8 6行目)   
               リスト 8.9 合計を求める (よりCらしいプログラム)  301(リスト8.9 5行目)   
               リスト 8.10 文字列の内容を表示するプログラム (配列版)  304(リスト8.10 6行目)   
               リスト 8.14 文字列をコピーする関数str_copy を呼び出す  309(リスト8.14 3, 4行目)   
               リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 10行目)   
               リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 10, 5行目)   
               リスト 10.7 fgets 関数を使用した例  370(リスト10.7 12, 13行目)   
               リスト 10.10 ファイル入出力サンプル  375(リスト10.10 9行目)   
               リスト 10.11 画面入出力サンプル  376(リスト10.11 3行目)   
               リスト 10.12 stderr に置き換えたファイル入出力サンプル  377(リスト10.12 9行目)   
               リスト 11.1 main 関数の実装  387(リスト11.1 10行目)   
               リスト 11.2 データ取り出し関数の実装  389(リスト11.2 3行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 28, 40行目)   
  ☝     ^    (キャレット、ハット)
 ビット演算子  
        ^ (ビット演算子(排他的OR))  91(表3.14)   
        ^= (排他的ORの結果を代入する)  91(表3.14)   
  ☝     _    (下線、アンダーバー)
 _ _extension_ _ 拡張機能  88   
 _ _STD_IEC_559_COMPLEX_ _ これが定義されている場合のみ、_Imaginary 型が使用できる  87(脚注39)   
 _Alignas アライメントの指定(C11以降)  399(付録2)   
 _Atomic データの競合性(C11以降)  399(付録2)   
 _Bool 論理型(C99以降)  87    399(付録2)   
 _Complex 複素数型 (C99以降)  87    88    399(付録2)   
 _Complex_I (マクロ) 虚数単位定数(1.0+i) (C99以降)  88   
 _Generic 総称選択:引数の型に合わせて、呼び出す関数を振り分ける (C11以降)  399(付録2)    199    200(リスト5.16 6行目)   
 _Imaginary 虚数部の値を示す型(C99以降)  87(脚注39)    399(付録2)   
 _Noreturn これが示されている関数は、呼び出し側に戻らないことを示す関数指示子(C11以降)  399(付録2)   
 _Static_assert 静的アサート:コンパイル時にチェックを行い、エラーメッセージを表示する(C11以降)  399(付録2)   
 _Thread_local スレッドに対してローカルなオブジェクトであることを示す(C11以降)  399(付録2)   
  ☝     {    (中括弧開き)
 ブロック  
        {(中括弧開き)  34    35    52    53   
        {} (ブロック)  121   
  ☝     |    (縦線))
 | (パイプ)  29   
 | (ビット演算子(ビットOR))  91(表3.14)   
 |= (ビットORの結果を代入する)  91(表3.14)   
 || (または)  114    115(表4.5)   
        使用事例  
               リスト 4.3 ANDとORの使用例  112(リスト4.3 14, 20行目)   
               リスト 6.3 配列の代入と参照 (入力チェック組込版:23行目以降は省略)  230(リスト6.3 18行目)   
               リスト 6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249(リスト6.11 15, 19行目)   
  ☝     }    (中括弧閉じ)
 ブロック  
        {} (ブロック)  121   
        }(中括弧閉じ)  34    35    52   
  ☝     ~    (チルダ)
 ~ (ビット演算子)  未掲載   
  ☝     ¥
 ¥ (円記号)  35   
 ¥" (ダブルクォーテーション)  272(Coffee Break 7.1)   
        使用事例  
               リスト 7.5 エスケープシーケンスを使った文字の例  273(リスト7.5 6行目)   
 ¥' (シングルクォーテーション)  272(Coffee Break 7.1)   
        使用事例  
               リスト 3.3 引用文字の表示  70(リスト3.3 7行目)   
               リスト 7.5 エスケープシーケンスを使った文字の例  273(リスト7.5 7行目)   
 ¥0 (NULLもじ)  272(Coffee Break 7.1)    274    275    310   
        使用事例  
               リスト 7.2 文字配列 (char 型の配列) に文字列を格納する  270(リスト7.2 12行目)   
               リスト 7.7 文字列の長さを知るプログラム  274(リスト7.7 7行目)   
               リスト 7.9 文字列の比較を行うプログラム  276(リスト7.9 15行目)   
               リスト 7.11 文字列のコピーを行うプログラム  279(リスト7.11 9行目)   
               リスト 7.13 文字列の複写 (str_cpy 関数)と連結 (str_cat 関数)を行うプログラム  281(リスト7.13 9, 21, 28行目)   
               リスト 8.11 文字列の内容を表示するプログラム (ポインタ版)  305(リスト8.11 9行目)   
               リスト 8.15 ポインタを使ったstr_copy 関数のプログラム  310(リスト8.15 6行目)   
 ¥n (改行記号)  35    35(脚注1)    274    365   
  ☝     0
 0 (16進定数表記)  
        0x (16進定数)  76   
 0 (8進定数)  76   
 0 (偽)  113   
 0 (除算)  
        0で割る  52   
        Division by 0 0で割る  52   
 0.1  
        0.1の2進表現  80(落とし穴3.3)   
        0.1を10回加えても1.0にならない  6   
        0.1を2進数に変換すると循環小数になる  6   
        0.1を正しく表現して計算できる10進演算機能  6   
 0x (16進定数)  
        0x00000000  159   
        0x00000061  159   
        0x000000FF  159   
        0x09 --- タブの文字コード  372(Coffee Break 10.3)   
        0x0A --- 改行の文字コード  372(Coffee Break 10.3)   
        0x61 --- a の文字コード  159    372(Coffee Break 10.3)   
        0xFF  159   
        0xFFFFFFFF  159   
 終了コード  
        0 (正常に終了)  141    351   
        0以外 (エラーで終了)  141   
 0番目要素  
        配列名は、式の中に書かれた場合、その0番目要素の先頭アドレスになる  298   
 0~  
        0~255 20~28-1  64(表3.4)   
        0~65535 20~216-1  64(表3.4)   
        0~4294967295 20~232-1  64(表3.4)   
        0~18446744073709551615 20~264-1  64(表3.4)   
  ☝     1
 1 (真)  113   
 10進  
        10進演算機能  6   
               0.1を正しく表現して計算できる10進演算機能  6   
        10進数  68(Coffee Break 3.4(表3.7))    80(落とし穴3.3)   
               整数の10進数以外の表記法  76   
        10進定数  
               0で始まる10進定数は記述できない  76   
        10進定数の記述ミス  76   
 10進数で表示  
        文字コード  113   
 16進  
        16進数  76    287   
        16進表記  71(脚注21)    76   
        16進表記の例  76(表3.11)   
 16ビットコンピュータ  67(Coffee Break 3.3)   
 1940年代  
        1940年代の初期  4   
        1947年  4   
 1970年代  
        1970年代初期  7   
 1980年代  
        1983年  7   
        1988年末  7   
        1998年  11   
 1990年代  
        1999年  64(脚注10)   
 1行単位でのコメント  37   
 1行入力  
        標準入力から1行入力  274   
 1次元配列  250    261    264(Coffee Break 6.2)    264(Coffee Break 6.2)(図6.18)    265   
        初期化  261   
               定義した要素数より初期化の要素が多いときにはエラーとなる  261   
               定義した要素数より初期化の要素が少ないときには、残りの配列は数値的に0で初期化される  261   
               配列を初期化する際には、配列の要素数を省略することができる  261   
        ベクトル  250   
        メモリ上での配列の並び  264(Coffee Break 6.2)    264(Coffee Break 6.2)(図6.18)   
 1次式  
        1次式ー>識別子  91(脚注48)   
        1次式[式]  91(脚注48)   
 1重引用符  71   
 1バイト  268    284   
  ☝     2
 2020年代  
        2020年  8   
        2020年6月  8(脚注21)   
        2020年春  31   
 2K  8    8(脚注23)   
 2桁の16進数  399(付録3)   
 2次元配列  250    251    257    262    265(Coffee Break 6.2)    265(Coffee Break 6.2)(図6.18)    265    266   
        行列  250   
        初期化  262   
               2次元配列の初期化では、int a[ ][10];というように左側のサイズを省略できる  263   
               2次元配列の初期化では、int a[2][2] = { 1,2 }, {3,4}, {5,6}, };というように最後の要素の後にコンマを入れるほうがよい  263   
                      ⇒その理由  264   
               2次元配列のデータは、「行方向」に格納される  263   
        定義ミス  251(脚注19)   
        配列の添字  251   
        表  250   
        メモリ上での配列の並び  265(Coffee Break 6.2)    265(Coffee Break 6.2)(図6.18)   
        使用事例  
               リスト 6.12 行列の和  252(リスト6.12 8~10行目)   
               リスト 6.13 行列の積  255(リスト6.13 9~11行目)   
 2次式  89(表3.13)   
 2次方程式  142   
        解の公式  142   
        解の公式は桁落ちが発生するため、使わない方がよい  142(脚注30)   
        虚数解  143   
        実数解  142    143   
        判別式  142    143   
        リスト4.9 2次方程式の実数解を求める  143   
 2重引用符  71   
 2重ループ  
        使用事例  
               リスト 4.21 goto 文による多重ループの強制脱出(掛け算問題)  169(リスト4.21 7~19行目)   
               リスト 6.9 バブルソートによる並べ替え  245(リスト6.9 16~27行目)   
               リスト 6.10 バブルソートによる並べ替え (マクロ使用版)  248(リスト6.10 18~29行目)   
               リスト 6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249(リスト6.11 29~40行目)   
               リスト 6.12 行列の和  252(リスト6.12 14~21, 24~31, 33~39, 42~49行目)   
               リスト 6.13 行列の積  255(リスト6.13 15~22, 25~32, 47~54行目)   
               リスト 6.14 最も離れた席を探す  259(リスト6.14 24~39行目)   
               リスト 9.5 最も離れた席を探す (構造体配列版)  335(リスト9.5 25~39行目)   
 2乗の計算  145(Coffee Break 4.3)   
 2進数  21    68(Coffee Break 3.4)    79(落とし穴3.3)    80(落とし穴3.3)   
        0.1を10回加えても1.0にならない  6   
        0.1を2進数に変換すると循環小数になる  6   
        0.1を正しく表現して計算できる10進演算機能  6   
        循環小数ではCの実数を正しく表現できない理由  6(脚注10)   
        少数を正確に表すことはできない  79(落とし穴3.3)   
        なぜ2進数は少数を正確に表すことはできないのか  79(落とし穴3.3)   
 2進接頭辞  11   
 2つの数を足し算するCプログラム  20   
 2つの整数が割り切れるならば  48   
 2つの整数が割りきれる場合答えを表示するプログラム  49   
 2点間の距離 \( ( x_i, y_i )~( x_j, y_j ) \)  
        距離 \( = \sqrt{ ( x_i - x_j )^2 + ( y_i - y_j )^2 } \)  258   
 2のべき乗  176   
 2のべき乗 2n  
        28=256  64   
        216=65,536  未記載   
        232=4,294,967,296  14   
        264=18,446,744,073,709,551,616  14   
        2128=340,282,366,920,938,463,463,374,607,431,768,211,456  未記載   
 2の補数  68(Coffee Break 3.4)   
        2の補数の求め方  68(Coffee Break 3.4)   
 2番目以降の文字(変数名)  
        AからZ、aからz、0から9、下線  60   
  ☝     3
 32ビットコンピュータ  67(Coffee Break 3.3)   
 3桁の8進数  399(付録3)   
 3項演算子  
        ⇒条件演算子      
 3次元座標の表現  266   
 3次元配列  265    266   
 3重ループ  
        break 文  165   
        continue 文  161   
        do-while 文  161   
        for 文  146   
        while 文  154   
        インクリメント  148   
        カウンタ変数  150   
        デクリメント  148   
        無限ループ  166   
        使用事例  
               リスト 4.22 フラグを使った強制脱出(掛け算問題)  170(リスト4.22 8~28行目)   
               リスト 6.13 行列の積  255(リスト6.13 34~44行目)   
 3ビット  
        3ビットのデータ表現(符号付きと符号なし)  68(Coffee Break 3.4(表3.8))   
        3ビットのデータ表現(符号なし)  68(Coffee Break 3.4(表3.7))   
  ☝     4
 4bit CPU  10   
 4GByte  14   
 4K  8   
 4つの基本型  63   
        char  63    268    269    270   
        double  63   
        float 浮動小数点数  63   
        int  63   
  ☝     6
 64bit CPU  10    14   
 64ビットコンピュータ  67(Coffee Break 3.3)   
 6桁、%fで表示した場合  77   
  ☝     7
 7ビット  283   
  ☝     8
 8進数  76   
        読み間違い  76(脚注28)   
 8ビット  283   
  ☝     A
 a.out 実行可能プログラム  25    38   
 ACK acknowledge 肯定応答  398(表A.1)   
 acos(x) 関数 cos-1(x)  139(表4.8)   
 actual argument ひきすう  178   
 address アドレス  286   
 algorithm アルゴリズム  2   
 alignment 境界整合(アライメント)  318(Coffee Break 9.1)   
 alignof アライメント(境界調整)を返す(C11以降)  399(付録2)   
 ALU 算術論理演算ユニット  12    13    14    15    16   
        Arithmetic Logic Unit  13(脚注34)   
 Android Googleが開発したオペレーティングシステム  7(脚注12)    8(脚注23)    18(脚注49)   
 AND論理演算子  114    115(表4.5)    116   
        AND論理演算子による条件式の結合  116   
        リスト4.3 ANDとORの使用例  112   
 ANSI 米国規格協会  
        ANSI  7   
        ANSI C  7    22(脚注58)   
        米国規格協会(ANSI)  7   
 ANSI 規格  321(脚注9)   
 API アプリケーションプログラミングインタフェース  338   
        Apprication Programming Interface  338(脚注21)   
 Apple アメリカ合衆国に本社があり、IT製品、ソフトウェアを開発し、販売している企業  31   
 argument ひきすう  177   
 arg~  
        argc 一般的にmain 関数のint 型のひきすう  356   
        argv 一般的にmain 関数のひきすう(コマンドラインひきすうを格納)  356   
 array 配列  223   
 arrow operator 矢印演算子  336   
 ASCII アスキー:英字を中心とした7ビットの文字コード  69(脚注16)    71    73    269    276    283   
        ASCIIコードの大小  276   
 ASCII コード表  118    398(付録1)   
        ACK acknowledge 肯定応答  398(表A.1)   
        BEL bell ビープ音  398(表A.1)   
        BS backspace バックスペース  398(表A.1)   
        CAN cancel 取り消し  398(表A.1)   
        CR carriage return 復帰  398(表A.1)   
        DC1 device control 1 装置制御1  398(表A.1)   
        DC2 device control 2 装置制御2  398(表A.1)   
        DC3 device control 3 装置制御3  398(表A.1)   
        DC4 device control 4 装置制御4  398(表A.1)   
        DEL delete 削除文字  398(表A.1)   
        DLE data link escape 伝送制御拡張  398(表A.1)   
        EN end of medium 媒体終了  398(表A.1)   
        ENQ enquiry 照会  398(表A.1)   
        EOT end of transmission 転送終了  398(表A.1)   
        ESC escape エスケープ  398(表A.1)   
        ETB end of trans.block 転送ブロック終了  398(表A.1)   
        ETX end of text テキスト終了  398(表A.1)   
        FF NP form feed、new page 改ページ  398(表A.1)   
        FS file separator ファイル区切り  398(表A.1)   
        GS group separator グループ区切り  398(表A.1)   
        LF NL line feed、new line 改行  398(表A.1)   
        NAK negative acknowledge 否定応答  398(表A.1)   
        NUL null ヌル文字  398(表A.1)   
        RS record separator レコード区切り  398(表A.1)   
        SI shift in シフトイン  398(表A.1)   
        SO shift out シフトアウト  398(表A.1)   
        SOH start of heading ヘッダ開始  398(表A.1)   
        STX start of text テキスト開始  398(表A.1)   
        SUB substitute 置き換え  398(表A.1)   
        SYN synchronous idle 同期信号  398(表A.1)   
        TAB horizontal tab 水平タブ  398(表A.1)   
        US unit separator ユニット区切り  398(表A.1)   
        VT vertical tab 垂直タブ  398(表A.1)   
 ASCII文字  284(表7.1)   
 asin(x) 関数 sin-1(x)  139(表4.8)   
 assembler アセンブラ  16   
 assembly language アセンブリ言語  16   
 assembly program アセンブリプログラム  16   
 assign 代入  42   
 assignment statement 代入文  43   
 AT&Tベル研究所  7   
 atan(x) 関数 tan-1(x)  139(表4.8)   
 atan2(x,y) 関数 tan-1(y/x)  139(表4.8)   
 auto 記憶クラス指定子  205    206(脚注22)     214    206(脚注22)   
 auto 変数  214    216    217    217(図5.22)   
        通用範囲  217    217(図5.22)   
 automatic variable 自動変数  210   
 ポインタ変数に可能な演算  
        ポインタ変数+整数  293   
        ポインタ変数+整数 (結果はポインタ)  293    296   
        ポインタ変数ー整数  293   
        ポインタ変数ー整数 (結果はポインタ)  293   
        ポインタ変数ーポインタ変数  293   
        ポインタ変数ーポインタ変数 (結果はint 型)  293   
  ☝     B
 B バイト  11   
 bash UNIXのシェルプログラム  28   
 Basic 初心者向けのプログラミング言語  5(表1.1)    5(脚注6)   
 BEL bell ビープ音  398(表A.1)   
 BIOS  17    17(脚注46)   
        Basic Input Output System  17(脚注46)   
 bit ビット  11   
        binary digit  11   
 block ブロック  121   
 Blu-Ray ブルーレイ  10   
 bool C++のブーリアン型  86(脚注38)    87   
 boolean ブーリアン型  86(脚注38)   
 boolean algebra ブール代数  86(脚注38)   
 Boolean datatype ブーリアン型  86    87   
 break point ブレークポイント  26   
 break 文  165    108(表4.3)    127    130    131    132    136    168(Coffee Break 4.6)    169    170    171    127   
        break 文は、switch文、for/while/do-while 文の中で使われる  165   
        switch 文  
               switch 文(breakなし)  130(図4.10)   
               switch 文(breakあり)  127(図4.9)   
               switch 文でbreak 文を省略した例  130   
               switch 文でbreak 文をすべて省略した例  130   
        ループ  
               多重ループからのbreak 文  165   
               ループがネストしている場合のbreak 文  165   
        使用事例  
               リスト 4.5 入賞者の判別  128(リスト4.5 14, 17, 20, 23行目)   
               リスト 4.6 break 文なしswitch 文  131(リスト4.6 23, 26行目)   
               リスト 4.7 switch 文で月の日数を判断する  132(リスト4.7 20, 26, 29, 32行目)   
               リスト 4.20 無限ループとbreak の使用例  166(リスト4.20 13, 27行目)   
               リスト 4.22 フラグを使った強制脱出(掛け算問題)  170(リスト4.22 20, 24, 27行目)   
               リスト 6.1 配列を使わないプログラム例:複雑で長くなる  224(リスト6.1 18, 21, 24, 27, 30, 32行目)   
               リスト 6.3 配列の代入と参照 (入力チェック組込版:23行目以降は省略)  230(リスト6.3 24行目)   
               リスト 7.13 文字列の複写 (str_cpy 関数)と連結 (str_cat 関数)を行うプログラム  281(リスト7.13 22行目)   
               リスト 10.1 データの集計 (手で入力作業をする版)  348(リスト10.1 15行目)   
 Brian W. Kernighan 「プログラミング言語C」(K&R)の著者の一人  7    214(脚注31)   
 BS backspace バックスペース  398(表A.1)   
 bug バグ  3    4   
 Bus error--core dump ポインタによるアクセスエラー  319(Coffee Break 9.1)(脚注a)   
 byte バイト  11   
 B言語  7(脚注15)   
        開発者  
               Ken Thompson B言語の開発者  7(脚注15)   
  ☝     C
 C  5(表1.1)    2    7   
        ANSI C  7   
        C++ 1983年に公開されたオブジェクト指向プログラミング言語  5    6    7(脚注15)    86(脚注38)    198    339(Coffee Break 9.4)   
        Cコンパイラ  7   
        Cの位置づけ  5   
        Cの規格  
               C89 C言語のANSI規格:ANSI X3.159-1989  7   
               C95 C言語のISO規格:ISO/IEC 9899/AMD1:1995  8   
               C99 C言語のISO規格:ISO/IEC 9899:1999  8    64(脚注10)    86(脚注38)    243(脚注17)    330   
               C11 C言語のISO規格:ISO/IEC 9899:2011  8    199   
               C18 C言語のISO規格:ISO/IEC 9899:2018  8(脚注21)   
        Cの特徴  6   
        Cらしい  
               リスト8.9 合計を求める (よりCらしいプログラム)  301   
        VC++ Microsoft Visual C++  236   
        開発者  
               Dennis M. Ritchie C言語の開発者  7   
        標準言語案  7   
 C compiler Cコンパイラ  22   
 C# アンダース・ヘルスバーグ(マイクロソフト)が設計したオブジェクト指向プログラミング言語  5    2    6   
        Visual C#  6   
 C++ 1983年に公開されたオブジェクト指向プログラミング言語  289    339(Coffee Break 9.4)   
        Visual C++  289    295   
 call by value 値渡し  189   
 CAN cancel 取り消し  398(表A.1)   
 case ラベル  127    129    131    132    171(落とし穴4.3)   
        switch 文  129   
        綴りを間違えると  171(落とし穴4.3)   
        使用事例  
               リスト 4.5 入賞者の判別  128(リスト4.5 12, 15, 18行目)   
               リスト 4.6 break 文なしswitch 文  131(リスト4.6 12~21行目)   
               リスト 4.7 switch 文で月の日数を判断する  132(リスト4.7 12~18, 21~24, 27行目)   
 cast キャスト  103   
        使用事例  
               リスト 10.1 データの集計 (手で入力作業をする版)  348(リスト10.1 22行目)   
               リスト 10.2 データの集計 (入力ファイルからデータを読み込む)  352(リスト10.2 29行目)   
               リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 33行目)   
               リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 30行目)   
               リスト 10.5 データファイルへの出力  364(リスト10.5 32行目)   
               リスト 10.7 fgets 関数を使用した例  370(リスト10.7 39行目)   
 CD-R コンパクトディスク  376   
 CD-ROM シーディーロム:光学ディスク  10   
 ceil(x) 関数 x以上の最小の整数。ただし、関数値はdoubleになる  139(表4.8)   
 CentOS Linuxディストリビューションの一つ  31   
 char  127    129    131    132    171(落とし穴4.3)    63    64    64(表3.4)    65    69    73    111    268    269    270    271    283    341(Coffee Break 9.5)   
        最大・最小  
               CHAR_MAX (char型の最大値)  67(Coffee Break 3.2)   
               CHAR_MIN (char型の最小値)  67(Coffee Break 3.2)   
               UCHAR_MAX (char型の符号なし最大値)  67(Coffee Break 3.2)   
               UCHAR_MIN⇒常に0なので、このマクロは定義されていない      
        初期化  271   
        注意事項  
               charは符号付きか符号なしかは決められていない  65    159   
               本書ではcharは符号付きと仮定します  65(脚注13)   
        使用事例  
               リスト 3.2 文字の表示  69(リスト3.2 5行目)   
               リスト 3.3 引用文字の表示  70(リスト3.3 5行目)   
               リスト 3.5 文字の変換  73(リスト3.5 6, 7行目)   
               リスト 7.1 文字 A を表示する  268(リスト7.1 5行目)   
               リスト 7.2 文字配列 (char 型の配列) に文字列を格納する  270(リスト7.2 5行目)   
               リスト 7.3 配列に文字配列に格納する (標準関数を利用)  271(リスト7.3 6行目)   
               リスト 7.4 文字配列の終端がわからないプログラム  271(リスト7.4 5行目)   
 CHAR_  
        CHAR_MAX (char型の最大値)  67(Coffee Break 3.2)   
        CHAR_MIN (char型の最小値)  67(Coffee Break 3.2)   
 character string 文字列  74   
 cimag 関数 複素数データの虚部を返す  88   
 click クリック  9(脚注24)   
 close クローズ、ファイルを閉じる  352   
 cmd.exe シェルプログラム  28   
 COBOL コボル:1959年に事務計算用に開発されたプログラミング言語  5(表1.1)    2    6   
 Coffee Break  
        Coffee Break 1.1 ばぐ (バグの語源)  4(Coffee Break1.1)   
        Coffee Break 1.2 ビットとバイト  11(Coffee Break1.2)   
        Coffee Break 1.3 コンパイラとリンカ  23(Coffee Break1.3)   
        Coffee Break 1.4 ライブラリ  25(Coffee Break1.4)   
        Coffee Break 2.1 コメントの書き方  36(Coffee Break2.1)   
        Coffee Break 2.2 メイク  39(Coffee Break2.2)   
        Coffee Break 2.3 プログラムの整形  52(Coffee Break2.3)   
        Coffee Break 3.1 命名規則について  62(Coffee Break3.1)   
        Coffee Break 3.2 各自の環境上の型の精度について  66(Coffee Break3.2)   
        Coffee Break 3.3 データの表現精度  67(Coffee Break3.3)   
        Coffee Break 3.4 整数の内部表現  68(Coffee Break3.4)   
        Coffee Break 3.5 定義された変数の配置  88(Coffee Break3.5)   
        Coffee Break 4.1 代入と等号を間違えない工夫  118(Coffee Break4.1)   
        Coffee Break 4.2 プログラムの終了コード  141(Coffee Break 4.2)   
        Coffee Break 4.3 2乗の計算  145(Coffee Break 4.3)   
        Coffee Break 4.4 getcharの補足  158(Coffee Break 4.4)   
        Coffee Break 4.5 文字の入力とバッファリング  160(Coffee Break 4.5)   
        Coffee Break 4.6 goto 文とbreak 文やcontinue 文  168(Coffee Break 4.6)   
        Coffee Break 5.1 関数のデバッグ  190   
        Coffee Break 5.2 総称選択  199   
        Coffee Break 6.1 数学的計算を行う場合  255   
        Coffee Break 6.2 メモリ上での配列の並び  264(Coffee Break 6.2)   
        Coffee Break 7.1 エスケープシーケンス  272(Coffee Break 7.1)   
        Coffee Break 7.2 メモリ破壊に気をつけるために  283(Coffee Break 7.2)   
        Coffee Break 8.1 ポインタ演算  311(Coffee Break 8.1)   
        Coffee Break 8.2 ポインタは指す型を定義しなければならない  312(Coffee Break 8.2)   
        Coffee Break 9.1 構造体の無名の穴  318(Coffee Break 9.1)   
        Coffee Break 9.2 文字列の代入は本当にできないの?  323(Coffee Break 9.2)   
        Coffee Break 9.3 組み込みシステムでは共用体が重要  328(Coffee Break 9.3)   
        Coffee Break 9.4 関数と構造体からオブジェクト指向へ  339(Coffee Break 9.4)   
        Coffee Break 9.5 typedef が有効な局面 (その1)  341(Coffee Break 9.5)   
        Coffee Break 9.6 typedef が有効な局面 (その2)  342(Coffee Break 9.6)   
        Coffee Break 9.7 列挙型の識別子の省略  344(Coffee Break 9.7)   
        Coffee Break 9.8 列挙変数の大きさは?  345(Coffee Break 9.8)   
        Coffee Break 10.1 ファイルのオープン・クローズについて  357(Coffee Break 10.1)   
        Coffee Break 10.2 ファイル名について  360(Coffee Break 10.2)   
        Coffee Break 10.3 ファイルと制御コード  372(Coffee Break 10.3)   
        Coffee Break 10.4 ファイルと改行コード  378(Coffee Break 10.4)   
        Coffee Break 11.1 データのバリデーション  397(Coffee Break 11.1)   
 comma-separated values CSV形式  381(脚注2)   
 Command Line Tools コマンドライン・デベロッパ・ツール  31(脚注77)   
 compile コンパイル  22   
 complex 複素数型  88   
        complex datatype 複素数型  87   
        double complex 実部・虚部がdouble型の複素数型  88   
 compound leteral 複合リテラル  331   
 const 修飾子 変数の値を固定にする  85    86   
 constant 定数  75   
 continue 文  161    108(表4.3)    162    162(図4.17)    168(Coffee Break 4.6)    370   
        continue 文の動作  162(図4.17)   
        continue 文は、for/while/do-while 文の中で使用可能  161   
        使用事例  
               リスト 4.18 厄年ではない年齢を表示する  162(リスト4.18 18, 22, 26, 34, 38, 42行目)   
               リスト 10.7 fgets 関数を使用した例  370(リスト10.7 31行目)   
 cos(x) 関数  139(表4.8)    150(リスト4.11 14行目)    182   
        使用事例  
               リスト 4.8 半径1の円周上の座標を求める  139(リスト4.8 31行目)   
               リスト 4.11 sin, cosの三角関数  150(リスト4.11 14行目)   
 CPU 中央処理装置  9(図1.4)    10    214    290(脚注11)   
        Central Processing Unit  10   
        CPUは同時に1つのプログラムしか実行できない  18   
 CR carriage return 復帰  398(表A.1)   
 CR (0x0D) + LF (0x0A) Windowsの改行コード  378(Coffee Break 10.4)   
 CR (0x0D) macOS バージョン9より前の改行コード  378(Coffee Break 10.4)   
 creal 関数 複素数データの実部を返す  88   
 CRT  8    8(脚注22)   
        Cathode Ray Tube CRT、陰極線管  8(脚注22)   
 csh UNIXのシェルプログラム  28   
 CSV形式  381    381(脚注2)   
        comma-separated values CSV形式  381(脚注2)   
 CSVファイル  385    396   
 CTRL -  
        CTRL + C (UNIX, Windows 強制終了)  166(脚注54)   
        CTRL + D (UNIX)  158   
        CTRL + Z (Windows)  158   
 CUI コマンド・ユーザ・インタフェース  21    31   
        Command User Interface CUI:コマンド・ユーザ・インタフェース  21   
 Cygwin シグウィン:Windows OS 上にUNIXと同じコマンドを使えるようにした互換レイヤー  31   
 Cコンパイラ  7    22    24(図1.11)    24(図1.12)    25   
        マイクロプロセッサに応じた専用のCコンパイラ  329(Coffee Break 9.3)   
 Cプログラム  24(図1.12)    32   
 Cプログラム実行までの手順  24(図1.12)   
 ポインタ演算の実例  
        char 型のポインタに +1 する (結果はポインタ)  296(図8.5)   
        short 型のポインタに +1 する (結果はポインタ)  296(図8.5)   
        int 型のポインタに +3 する (結果はポインタ)  297(リスト8.5 12行目)   
        long int 型のポインタに +1 する (結果はポインタ)  296(図8.5)   
        ポインタを -1 すると  297(脚注18)   
        sizeof (*ポインタ)  297   
        ポインターポインタ (この2つのポインタは同じ配列の要素)  297   
  ☝     D
 DBL_  
        DBL_DIG (double型の精度の桁数)  66(Coffee Break 3.2)    67(Coffee Break 3.2)   
        DBL_MAX (double型の最大値)  66(Coffee Break 3.2)    67(Coffee Break 3.2)    233    233(リスト6.6 14行目)    233(リスト6.6 15行目)   
        DBL_MIN (double型の最小値)  66(Coffee Break 3.2)    67(Coffee Break 3.2)   
 DC device control  
        DC1 device control 1 装置制御1  398(表A.1)   
        DC2 device control 2 装置制御2  398(表A.1)   
        DC3 device control 3 装置制御3  398(表A.1)   
        DC4 device control 4 装置制御4  398(表A.1)   
 デバッグ  
        debug デバッグ  4    26   
        debug write デバッグライト  26   
        debugger デバッガ  26   
 decrement デクリメント  148   
 default ラベル  127    129    132    171(落とし穴4.3)   
        switch 文  129   
        注意点  
               dedault ラベルは省略可能だが、省略しない方が望ましい  129   
               default ラベルは複数書くことができない  129   
               綴りを間違えてdefaultsとしないように  172(落とし穴4.3)   
               綴りを間違えると  171(落とし穴4.3)   
        使用事例  
               リスト 4.5 入賞者の判別  128(リスト4.5 21行目)   
               リスト 4.6 break 文なしswitch 文  131(リスト4.6 24行目)   
               リスト 4.7 switch 文で月の日数を判断する  132(リスト4.7 30行目)   
               リスト 6.1 配列を使わないプログラム例:複雑で長くなる  224(リスト6.1 31行目)   
 define 定義  340   
 degree 度 (角度)  139   
 DEL delete 削除文字  398(表A.1)   
 Dennis M. Ritchie C言語の開発者  7    214(脚注31)   
 designated initializer 指示初期化子  330   
 directive ディレクティブ  23(Coffee Break 1.3)   
 Division by 0 0で割る  52   
 DLE data link escape 伝送制御拡張  398(表A.1)   
 do 文 do-while 文のdo  108(表4.3)    145    161    161(図4.16)    162(図4.17)   
 do-while 文  161    108(表4.3)    145    161(図4.16)    162(図4.17)   
        continue 文  162(図4.17)   
        while(条件式)の後のセミコロン(;)は必ず必要  161   
        最初の1回は本体が実行される  161   
        使用事例  
               リスト 4.17 do-while 文によるプログラム例  161(リスト4.17 7~11行目)   
               リスト 6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249(リスト6.11 12~19行目)   
 double  42    63    65(表3.5)    77    95    96    112(脚注3)   
        大きさ・精度  
               DBL_DIG (double型の精度の桁数)  66(Coffee Break 3.2)    67(Coffee Break 3.2)   
               DBL_MAX (double型の最大値)  66(Coffee Break 3.2)    67(Coffee Break 3.2)    233    233(リスト6.6 14行目)    233(リスト6.6 15行目)   
               DBL_MIN (double型の最小値)  66(Coffee Break 3.2)    67(Coffee Break 3.2)   
               型変換による精度の消失  101   
               最小値  66(Coffee Break 3.2)   
               最大値  66(Coffee Break 3.2)   
               精度  66(Coffee Break 3.2)   
               浮動小数点を表現する場合にはdoubleを使用する  66   
        文法的事項  
               break 文なしswitch 文  131   
               double complex 実部・虚部がdouble型の複素数型  88   
               double 型へのポインタ  290   
               sizeof 演算子の使い方  97   
               型変換と代入演算子の順序  102   
               関係演算子  110   
        使用事例  
               リスト 3.1 型の情報を表示  66(Coffee Break 3.2)(リスト3.1 7~11行目)   
               リスト 3.6 浮動小数点の表示  73(リスト3.6 5行目)   
               リスト 3.7 丸め誤差  80(リスト3.7 5行目)   
               リスト 3.12 定数の使用例:エネルギーの計算  86(リスト3.12 5, 6行目)   
               リスト 3.15 double 型の加算・減算  96(リスト3.15 5行目)   
               リスト 3.16 sizeof 演算子の使い方  97(リスト3.16 11, 12行目)   
               リスト 3.18 型変換と代入演算子の順序  102(リスト3.18 6行目)   
               リスト 4.8 半径1の円周上の座標を求める  139(リスト4.8 7, 8行目)   
               リスト 4.9 2次方程式の実数解を求める  143(リスト4.9 6行目)   
               リスト 4.11 sin, cosの三角関数  150(リスト4.11 6, 7行目)   
               リスト 5.10 printf を使ったデバッグの例  190(リスト5.10 1行目)   
               リスト 5.11 sqrt の計算と表示  193(リスト5.11 4, 8, 19, 21, 22行目)   
               リスト 5.12 関数の引数と個数と型の一致  195(リスト5.12 6, 7, 16行目)   
               リスト 5.14 誤りのあるmax 関数の例  198(リスト5.14 4, 9, 27行目)   
               リスト 5.15 正しいmax 関数の例  198(リスト5.15 4, 9, 27行目)   
               リスト 5.16 総称選択を用いたmax 関数  200(リスト5.16 4, 11, 29行目)   
               リスト 6.6 配列を使用しない体重の最大値と最小値の検出  233(リスト6.6 7, 8行目)   
               リスト 6.7 平均値・分散・標準偏差 (その1)  236(リスト6.7 7, 10行目)   
               リスト 6.8 平均値・分散・標準偏差 (その2)  238(リスト6.8 7, 9行目)   
               リスト 6.12 行列の和  252(リスト6.12 8~10行目)   
               リスト 6.13 行列の積  255(リスト6.13 9~11行目)   
               リスト 6.14 最も離れた席を探す  259(リスト6.14 9, 11~13行目)   
               リスト 9.5 最も離れた席を探す (構造体配列版)  335(リスト9.5 11, 12, 14~16行目)   
               リスト 9.6 構造体のメンバをポインタを使って参照する  337(リスト9.6 10行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 23, 24行目)   
 DRAM ディーラム:揮発性の半導体メモリ  10    10(脚注28)    14   
        Dynamic RAM  10(脚注28)   
 DVD ディーブイディー:光学ディスク  10   
  ☝     E
 EBCDIC エビシディック:IBMが定義した文字コード  71   
 echo エコー:入力をそのまま出力すること  158(脚注50)   
 edit 編集  21   
 editor エディタ  21    349   
 element 配列の要素  227   
 else if 文  54    137   
        使用事例  
               リスト 2.14 FizzBuzzゲームを行うプログラム  54(リスト2.14 13, 17行目)   
               リスト 4.8 半径1の円周上の座標を求める  139(リスト4.8 20行目)   
               リスト 4.12 数当てゲーム  152(リスト4.12 19行目)   
               リスト 11.3 夏日計数関数の実装  390(リスト11.3 10, 14行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 127, 131行目)   
 else 文  108(表4.3)    50    109    124    126(図4.8)    133    134    136    137    138   
        もし条件式が真ならば文1を行い、偽ならば文2を行う  124   
        使用事例  
               リスト 2.12 割りきれない場合の処理を追加したプログラム  50(リスト2.12 22行目)   
               リスト 2.13 入力された値が0でないかチェックするプログラム  51(リスト2.13 25, 30行目)   
               リスト 2.14 FizzBuzzゲームを行うプログラム  54(リスト2.14 21行目)   
               リスト 3.7 丸め誤差  80(リスト3.7 15行目)   
               リスト 4.4 偶数か奇数かの判断  125(リスト4.4 15行目)   
               リスト 4.8 半径1の円周上の座標を求める  139(リスト4.8 25行目)   
               リスト 4.9 2次方程式の実数解を求める  143(リスト4.9 17, 23, 34, 39行目)   
               リスト 4.12 数当てゲーム  152(リスト4.12 23行目)   
               リスト 4.18 厄年ではない年齢を表示する  162(リスト4.18 29行目)   
               リスト 6.3 配列の代入と参照 (入力チェック組込版:23行目以降は省略)  230(リスト6.3 22行目)   
               リスト 7.8 文字列の比較を行うプログラム (標準関数を使用)  275(リスト7.8 20行目)   
               リスト 7.9 文字列の比較を行うプログラム  276(リスト7.9 39行目)   
               リスト 9.2 共用体の利用 (その1)  325(リスト9.2 20, 31行目)   
               リスト 11.1 main 関数の実装  387(リスト11.1 26行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 56, 156行目)   
 Emacs イーマックス:テキストエディタ  21   
 embeded system 組み込みシステム  329(Coffee Break 9.3)   
 EN end of medium 媒体終了  398(表A.1)   
 ENQ enquiry 照会  398(表A.1)   
 enum 列挙型の定義  343    344    345   
 enumeration 列挙  343   
 enumeration type 列挙型  343   
 enumerator 列挙子  343   
 enumerator-list 列挙子リスト  343   
 EOF  158   
        CTRL + D (UNIX)  158   
        CTRL + Z (Windows)  158   
        End Of File  158    359   
        EOFの値は-1  159   
        使用事例  
               リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 22行目)   
               リスト 10.5 データファイルへの出力  364(リスト10.5 23行目)   
 EOF マクロ  158    352    358(Coffee Break 10.1)    359    368    370    371   
        リスト10.4 データの集計 (データの終わりを判定する)  360   
 EOT end of transmission 転送終了  398(表A.1)   
 error message エラーメッセージ  22   
 ERRORLEVEL (Windowsで終了コードを格納する変数)  142(Coffee Break 4.2)   
 ESC escape エスケープ  398(表A.1)   
 escape sequence エスケープシーケンス  70   
 ETB end of trans.block 転送ブロック終了  398(表A.1)   
 ETX end of text テキスト終了  398(表A.1)   
 Excel Microsoft Excel 表計算ソフト  396   
 exec ⇒fork/exec  29(脚注72)   
 executable file 実行可能ファイル  18   
 executable statement 実行文  82   
 exeファイル 本書ではWindowsの実行可能ファイルという意味で使います  31(脚注75)   
 exit(s) 関数 プログラムを終了させる。sは終了コード  142(Coffee Break 4.2)    350    353   
        使用事例  
               リスト 10.2 データの集計 (入力ファイルからデータを読み込む)  352(リスト10.2 14行目)   
               リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 18行目)   
               リスト 10.5 データファイルへの出力  364(リスト10.5 14, 20行目)   
               リスト 10.6 データの追加  366(リスト10.6 11行目)   
               リスト 10.7 fgets 関数を使用した例  370(リスト10.7 21行目)   
               リスト 10.10 ファイル入出力サンプル  375(リスト10.10 14, 23行目)   
               リスト 10.12 stderr に置き換えたファイル入出力サンプル  377(リスト10.12 14, 21行目)   
               リスト 11.1 main 関数の実装  387(リスト11.1 29, 41, 65行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 59, 71, 97行目)   
 EXIT_FAILURE  142(Coffee Break 4.2)   
        使用事例  
               リスト 10.2 データの集計 (入力ファイルからデータを読み込む)  352(リスト10.2 14行目)   
               リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 18行目)   
               リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 18行目)   
               リスト 10.5 データファイルへの出力  364(リスト10.5 14行目)    364(リスト10.5 14, 20行目)   
               リスト 10.6 データの追加  366(リスト10.6 11行目)   
               リスト 10.7 fgets 関数を使用した例  370(リスト10.7 21行目)   
               リスト 10.10 ファイル入出力サンプル  375(リスト10.10 14, 23行目)   
               リスト 10.12 stderr に置き換えたファイル入出力サンプル  377(リスト10.12 14, 21行目)   
               リスト 11.1 main 関数の実装  387(リスト11.1 29, 41, 65行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 59, 71, 97行目)   
 EXIT_FAILURE マクロ  142(Coffee Break 4.2)    351   
 EXIT_SUCCESS  142(Coffee Break 4.2)   
        使用事例  
               リスト 10.2 データの集計 (入力ファイルからデータを読み込む)  352(リスト10.2 34行目)   
               リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 38行目)   
               リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 35行目)   
               リスト 10.5 データファイルへの出力  364(リスト10.5 38行目)   
               リスト 10.6 データの追加  366(リスト10.6 19行目)   
               リスト 10.7 fgets 関数を使用した例  370(リスト10.7 44行目)   
               リスト 10.10 ファイル入出力サンプル  375(リスト10.10 32行目)   
               リスト 10.12 stderr に置き換えたファイル入出力サンプル  377(リスト10.12 32行目)   
               リスト 11.1 main 関数の実装  387(リスト11.1 69行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 101行目)   
 EXIT_SUCCESS マクロ  142(Coffee Break 4.2)    351    353   
 exp(x) 関数 ex (指数関数)  139(表4.8)   
 expected ';' after expression 文の最後にセミコロンがない  41   
 expression statement 式文  89   
 ext4 ファイルシステム Linux で採用されているファイルシステム  361(Coffee Break 10.2)   
 extern 記憶クラス指定子  205    206    206(脚注22)   
 extern 宣言  218    218   
        関数の外側でのextern 宣言の有効範囲は、宣言の直後から、そのコンパイル単位の終わりまで  218   
        通用範囲  218(図5.23)   
  ☝     F
 F (修飾子付きの整数、float に対する)  77(脚注29)   
 fabs(x) 関数 |x| (絶対値)  139(表4.8)   
 factorial 階乗  201   
 false   86    87    109   
 FAT  
        exFAT ファイルシステム Windows Vista SP1 以降で採用されたファイルシステム  361(Coffee Break 10.2)   
        FAT ファイルシステム MS-DOSで採用されたファイルシステム  361(Coffee Break 10.2)   
        FAT16 ファイルシステム Windows95 以降で採用されたファイルシステム  361(Coffee Break 10.2)   
        FAT32 ファイルシステム Windows95 以降で採用されたファイルシステム  361(Coffee Break 10.2)   
 fclose 関数 ファイルを閉じる  352    358(Coffee Break 10.1)    359(Coffee Break 10.1,(脚注b)    368    371   
        fclose 関数は、正常にクローズできた場合は0(真偽値では偽)、失敗した場合はEOF(真偽値では真)を返す  371   
        フラッシュ  358(Coffee Break 10.1)   
        使用事例  
               リスト 10.2 データの集計 (入力ファイルからデータを読み込む)  352(リスト10.2 12行目)   
               リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 36行目)   
               リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 33行目)   
               リスト 10.5 データファイルへの出力  364(リスト10.5 35, 36行目)   
               リスト 10.6 データの追加  366(リスト10.6 17行目)   
               リスト 10.7 fgets 関数を使用した例  370(リスト10.7 42行目)   
               リスト 10.8 例外処理でgoto 文が有効な例  373(リスト10.8 18, 20, 22行目)   
               リスト 10.9 goto 文を使用しない例  374(リスト10.9 14, 19, 20, 27~29行目)   
               リスト 10.10 ファイル入出力サンプル  375(リスト10.10 20, 29, 30行目)   
               リスト 10.12 stderr に置き換えたファイル入出力サンプル  377(リスト10.12 20, 29, 30行目)   
               リスト 11.1 main 関数の実装  387(リスト11.1 56行目)   
               リスト 11.4 集計結果出力関数の実装  390(リスト11.4 15行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 153行目)   
 feof(fp) 関数 ファイルの終端を判断する関数  368   
 ferror(fp) 関数 エラーの発生を判断する関数  368   
 FF NP form feed、new page 改ページ  398(表A.1)   
 fflush 関数 バッファに格納されているデータを書き出す  358(Coffee Break 10.1)   
 fgetc(fp) 関数 ファイルから1文字入力する関数  368   
        エラーチェックの実例  368   
 fgets(*s,size,*fp) 関数 ファイル(fp)から1行入力し、文字列(s)(長さsize)にセットする  273    368    369    370   
        ファイルの終端に達するとfgets 関数はNULL を返す  370   
        文字列の読み出し規則  369   
        使用事例  
               リスト 7.6 文字列の長さを知るプログラム (標準関数を使用)  274(リスト7.6 10行目)   
               リスト 7.7 文字列の長さを知るプログラム  274(リスト7.7 21行目)   
               リスト 7.8 文字列の比較を行うプログラム (標準関数を使用)  275(リスト7.8 11, 14行目)   
               リスト 7.9 文字列の比較を行うプログラム  276(リスト7.9 30, 33行目)   
               リスト 10.7 fgets 関数を使用した例  370(リスト10.7 25行目)   
               リスト 10.10 ファイル入出力サンプル  375(リスト10.10 24行目)   
               リスト 10.12 stderr に置き換えたファイル入出力サンプル  377(リスト10.12 24行目)   
               リスト 11.1 main 関数の実装  387(リスト11.1 45行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 75行目)   
 file ファイル  19    349   
 file system ファイルシステム  19   
 FILE  
        FILE 構造体  350    357(Coffee Break 10.1)    358(Coffee Break 10.1)   
        FILENAME_MAX マクロ ファイル名の最大の長さ  354    354(脚注11)   
        FILE型  350    350(脚注5)   
        使用事例  
               リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 11行目)   
               リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 11行目)   
               リスト 10.5 データファイルへの出力  364(リスト10.5 9行目)   
               リスト 10.6 データの追加  366(リスト10.6 6行目)   
               リスト 10.7 fgets 関数を使用した例  370(リスト10.7 14行目)   
               リスト 10.8 例外処理でgoto 文が有効な例  373(リスト10.8 3~5行目)   
               リスト 10.9 goto 文を使用しない例  374(リスト10.9 3~5行目)   
               リスト 10.10 ファイル入出力サンプル  375(リスト10.10 8行目)   
               リスト 10.12 stderr に置き換えたファイル入出力サンプル  377(リスト10.12 8行目)   
               リスト 11.4 集計結果出力関数の実装  390(リスト11.4 4行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 39, 142行目)   
 FizzBuzz フィズバズ問題  54   
        FizzBuzzゲームを行うプログラム  54   
        リスト2.14 FizzBuzzゲームを行うプログラム  54   
 float 浮動小数点数  63    65(表3.5)    77(脚注29)    96    98   
        float complex 実部と虚部がfloat型の複素数  88   
        float type 浮動小数点数型  63   
        float型の定数 3.14159FというようにFを付ける  77(脚注29)   
        大きさ・精度  
               FLT_DIG (float型の精度の桁数)  67(Coffee Break 3.2)   
               FLT_MAX (float型の最大値)  67(Coffee Break 3.2)   
               FLT_MIN (float型の最小値)  67(Coffee Break 3.2)   
        注意点  
               floatは使うべきではない  66   
               精度が低い  66   
 floatに対する  
        F (修飾子付きの整数、float に対する)  77(脚注29)   
 floor(x) 関数 x以下の最大の整数。ただし、関数値はdoubleになる  139(表4.8)   
 FLT_  
        FLT_DIG (float型の精度の桁数)  67(Coffee Break 3.2)   
        FLT_MAX (float型の最大値)  67(Coffee Break 3.2)   
        FLT_MIN (float型の最小値)  67(Coffee Break 3.2)   
 fmod(x) 関数 x/yの浮動小数点の余り。関数値の符号はxと同じ  96(脚注53)    139(表4.8)   
 foolproof フールプルーフ  119(脚注a)   
 fopen 関数 ファイルをオープンする  350    354    357(Coffee Break 10.1)    358(Coffee Break 10.1)    362    363    366    368   
        "a" - ファイルの追加書き込み  358(Coffee Break 10.1)    359(Coffee Break 10.1, (脚注a))    366   
        "r" - ファイルの読み込み  350    358(Coffee Break 10.1)    359(Coffee Break 10.1, (脚注a))   
        "w" - ファイルの書き込み  358(Coffee Break 10.1)    359(Coffee Break 10.1, (脚注a))    363   
        fopen とfscanf の関係  352(図10.2)   
        使用事例  
               リスト 10.2 データの集計 (入力ファイルからデータを読み込む)  352(リスト10.2 11行目)   
               リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 15行目)   
               リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 15行目)   
               リスト 10.5 データファイルへの出力  364(リスト10.5 11, 16行目)   
               リスト 10.6 データの追加  366(リスト10.6 8行目)   
               リスト 10.7 fgets 関数を使用した例  370(リスト10.7 18行目)   
               リスト 10.8 例外処理でgoto 文が有効な例  373(リスト10.8 8~10行目)   
               リスト 10.9 goto 文を使用しない例  374(リスト10.9 8, 12, 17行目)   
               リスト 10.10 ファイル入出力サンプル  375(リスト10.10 11, 17行目)   
               リスト 10.12 stderr に置き換えたファイル入出力サンプル  377(リスト10.12 11, 17行目)   
               リスト 11.1 main 関数の実装  387(リスト11.1 37行目)   
               リスト 11.4 集計結果出力関数の実装  390(リスト11.4 6行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 67, 144行目)   
 FOPEN_MAX マクロ 同時に開くことのできるファイルの最大数  362   
 for 文  146    54    55    56    108(表4.3)    145    146(図4.13 プログラムの形式)    162(図4.17)    165   
        カウンタ変数  
               カウンタ変数更新のための増分値  146   
               カウンタ変数の更新  146(図4.13 プログラムの形式)   
               カウンタ変数の初期値  146   
               複数のカウンタ変数を設定  152   
        初期化  146(図4.13 プログラムの形式)   
               for文の初期化部分の先頭で変数を定義  162   
               初期化式  55   
        注意点  
               for 文での注意点  231   
        文法事項  
               break 文  165   
               continue 文  162(図4.17)   
               for文内の式の省略  151   
        無限ループ  166   
               for( ; ; ) (無限ループ)  166    166(リスト4.20 8行目)    230(リスト6.3 15行目)   
        ループ(繰り返し)処理  
               繰り返しの終了  55   
               継続条件  146(図4.13 プログラムの形式)   
               更新処理  55   
               ループの継続条件  146   
        リスト6.9 バブルソートによる並べ替え  245(リスト6.9)   
        使用事例  
               リスト 2.14 FizzBuzzゲームを行うプログラム  54(リスト2.14 7行目)   
               リスト 4.10 1から10までの和を求める  146(リスト4.10 7行目)   
               リスト 4.11 sin, cosの三角関数  150(リスト4.11 11行目)   
               リスト 4.12 数当てゲーム  152(リスト4.12 10行目)   
               リスト 4.18 厄年ではない年齢を表示する  162(リスト4.18 11行目)   
               リスト 4.20 無限ループとbreak の使用例  166(リスト4.20 8行目)   
               リスト 4.21 goto 文による多重ループの強制脱出(掛け算問題)  169(リスト4.21 7, 9行目)   
               リスト 4.22 フラグを使った強制脱出(掛け算問題)  170(リスト4.22 8, 10, 12行目)   
               リスト 5.1 整数の正のべき乗を計算する関数(その1)  177(リスト5.1 7行目)   
               リスト 5.3 整数の正のべき乗を計算する関数(その3)  179(リスト5.3 19行目)   
               リスト 5.4 整数の正のべき乗を計算する関数(その4)  182(リスト5.4 9行目)   
               リスト 5.5 整数の正のべき乗を計算する関数(その5)  184(リスト5.5 9行目)   
               リスト 5.8 整数の正のべき乗を計算する関数(完全版)  185(リスト5.8 9行目)   
               リスト 5.9 組み合わせを求める関数 combi  187(リスト5.9 9, 25, 30, 35行目)   
               リスト 5.11 sqrt の計算と表示  193(リスト5.11 11行目)   
               リスト 5.17 組み合わせを求めるより簡潔なプログラム  201(リスト5.17 10, 12, 32行目)   
               リスト 5.23 自分自身が呼ばれた回数を返す関数 (static 変数版)  212(リスト5.23 10行目)   
               リスト 6.3 配列の代入と参照 (入力チェック組込版:23行目以降は省略)  230(リスト6.3 15行目)   
               リスト 6.4 配列の代入と参照 (全要素出力版)  230(リスト6.4 15行目)   
               リスト 6.5 配列とfor 文を用いた体重の最大値と最小値の検出  231(リスト6.5 17行目)   
               リスト 6.7 平均値・分散・標準偏差 (その1)  236(リスト6.7 13, 19, 26行目)   
               リスト 6.8 平均値・分散・標準偏差 (その2)  238(リスト6.8 11行目)   
               リスト 6.9 バブルソートによる並べ替え  245(リスト6.9 11, 16, 18, 30行目)   
               リスト 6.10 バブルソートによる並べ替え (マクロ使用版)  248(リスト6.10 13, 18, 20, 32行目)   
               リスト 6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249(リスト6.11 24, 29, 31, 43行目)   
               リスト 6.12 行列の和  252(リスト6.12 14, 16, 24, 26, 33, 35, 42, 44行目)   
               リスト 6.13 行列の積  255(リスト6.13 15, 17, 25, 27, 34, 36, 39, 47, 49行目)   
               リスト 6.14 最も離れた席を探す  259(リスト6.14 19, 24, 26行目)   
               リスト 9.5 最も離れた席を探す (構造体配列版)  335(リスト9.5 20, 25, 27行目)   
               リスト 8.3 ポインタ演算のテスト(その1)  294(リスト8.3 9行目)   
               リスト 8.4 ポインタ演算のテスト(その2)  295(リスト8.4 9行目)   
               リスト 8.5 ポインタ演算のテスト(演算子による違い)  296(リスト8.5 9行目)   
               リスト 8.7 合計を求める (配列版)  299(リスト8.7 11行目)   
               リスト 8.8 合計を求める (値のアクセスをポインタで行う版)  300(リスト8.8 13行目)   
               リスト 8.10 文字列の内容を表示するプログラム (配列版)  304(リスト8.10 9行目)   
               リスト 8.11 文字列の内容を表示するプログラム (ポインタ版)  305(リスト8.11 9行目)   
               リスト 8.16 int 型の配列に格納されている数値をすべて合計する関数 (不完全版)  311(リスト8.16 5行目)   
               リスト 8.17 int 型の配列に格納されている数値をすべて合計する関数 (引数に配列の要素)  311(リスト8.17 5行目)   
               リスト 10.1 データの集計 (手で入力作業をする版)  348(リスト10.1 9行目)   
               リスト 10.2 データの集計 (入力ファイルからデータを読み込む)  352(リスト10.2 17行目)   
               リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 21行目)   
               リスト 11.1 main 関数の実装  387(リスト11.1 15行目)   
               リスト 11.4 集計結果出力関数の実装  390(リスト11.4 9行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 45, 147, 167行目)   
 fork/exec 親プロセスから子プロセスを生成し、実行する  29(脚注72)   
 formal argument ひきすう  178   
 Fortran フォートラン:1954年にIBMのジョン・バッカスによって開発された世界初の科学技術用プログラミング言語  5(表1.1)    2    89    89(脚注40)   
 fprintf 関数 printf 関数のファイル版  363    365    368   
        fprintf 関数は、書き込みに失敗した場合は負の数を返す  363    363(脚注19)   
        fprintf 関数は、ファイルに書き出された文字数を返す  363   
        使用事例  
               リスト 10.5 データファイルへの出力  364(リスト10.5 25行目)   
               リスト 10.6 データの追加  366(リスト10.6 14, 15行目)   
               リスト 10.12 stderr に置き換えたファイル入出力サンプル  377(リスト10.12 13, 19行目)   
               リスト 11.1 main 関数の実装  387(リスト11.1 28, 40行目)   
               リスト 11.4 集計結果出力関数の実装  390(リスト11.4 12, 20行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 58, 70, 150, 158, 169, 178行目)   
 fputc(fp) 関数 ファイルに1文字出力する関数  368   
        エラーチェックの実例  368   
 fputs(str,fp) 関数 ファイル(fp)に文字列(str)を出力する  375   
        fputs 関数は、データの出力に成功した場合は負でない値を、失敗した場合にはEOFを返す  375   
        使用事例  
               リスト 10.10 ファイル入出力サンプル  375(リスト10.10 26行目)   
               リスト 10.12 stderr に置き換えたファイル入出力サンプル  377(リスト10.12 26行目)   
 FR フラグレジスタ  12    13   
 FS file separator ファイル区切り  398(表A.1)   
 fscanf 関数 ファイルから入力する  351    352    359    369    370   
        fopen とfscanf の関係  352(図10.2)   
        危険性  369   
        使用事例  
               リスト 10.2 データの集計 (入力ファイルからデータを読み込む)  352(リスト10.2 19行目)   
               リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 23行目)   
               リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 22行目)   
               リスト 10.5 データファイルへの出力  364(リスト10.5 23行目)   
 sizeof (*ポインタ)  297   
 function 関数  176   
  ☝     G
 gcc コマンド  24    25(脚注63)    31    38    39    236   
        -c (オプション)  38   
        -lm(エルエム)(オプション)  138    236    259(脚注21)   
        -o (オプション)  38   
        gcc コンパイラ  236   
        出力するファイルを指定するコマンド  38   
        リンクの実行コマンド  39   
 gcc コンパイラ  236   
 getchar 関数  157    158(リスト4.15 9行目)    160(Coffee Break 4.5)   
        getchar 関数はint型を返す  158(Coffee Break 4.4)   
               その理由は、EOFが-1であると定義されているから  159   
                      -1は、charでは表現できない可能性がある(charは、signedかunsignedかが定義されていない)  159   
                             表4.11 -1の表現の違い(intとsigned char)を参考にせよ  159(表4.11)   
        継続条件  159   
        使用事例  
               リスト 4.15 入力した文字を出力する(その1)  158(リスト4.15 5, 9行目)   
               リスト 4.16 入力した文字を出力する(その2)  159(リスト4.16 7行目)   
 getcharの補足  158(Coffee Break 4.4)   
 gets(str) 関数 標準入力から改行文字までの文字列を読み込み、文字列strに格納する  376   
 GiB ギガバイト  11   
 global variable  211   
 GNU  25    25(脚注65)    31   
 goto 文  108    167    168(Coffee Break 4.6)    169    170    171    372    373    374    169   
        goto 文により、ループの外からループの内側に飛び込むことも可能だが、やってはならない  170(脚注58)   
        goto 文による例外処理  171   
        goto 文を使用しようとしたときは、他の方法がないかどうかいつも考慮する  171   
        goto 文を用いた方が便利な場合  169   
        繰り返し制御の内側からの強制脱出  169   
        名札付き文  168   
        ループを一挙に脱出したい  169   
        使用事例  
               リスト 4.21 goto 文による多重ループの強制脱出(掛け算問題)  169(リスト4.21 16行目)   
               リスト 10.8 例外処理でgoto 文が有効な例  373(リスト10.8 8~10行目)   
               リスト 10.9 goto 文を使用しない例  374(リスト10.9 ご参考)   
 grammer 文法  2   
 Graphical User Interface  5(脚注7)    21   
 GS group separator グループ区切り  398(表A.1)   
 GUI  5    5(脚注7)    21    31   
  ☝     H
 Hard Disk Drive  10   
 HDD ハードディスク  10   
        Hard Disk Drive  10   
 header file  23(Coffee Break 1.3)   
  ☝     I
 I (虚数、まくろ)  88   
 IEC 国際電気標準会議  11   
 IEEE  65(脚注14)   
        IEEE754  65(脚注14)   
 if else 文  126(図4.8)    133    134    136    137   
 if 文  48    53    56    108(表4.3)    109    120    126(図4.8)    133    134    135    136    137    138    113   
        if(~)の真偽  
               常に偽  
                      if( 0 )は常に偽  113   
                      if( 0.0 )は常に偽  114(脚注7)   
                      if( NULL )は常に偽  114(脚注7)   
               常に真  
                      if( -23 )は常に真  114(脚注7)   
                      if( 1 )は常に真  113   
                      if( 3.14159 )は常に真  114(脚注7)   
                      if( 5.02e23 )は常に真  114(脚注7)   
        switch 文  
               switch 文との使い分け  135   
               switch文で表現できることはif文でも表現できる  135   
        演算子  
               ! (否定演算子)  115(表4.5)4   
               != (非等号)  114   
               && (かつ)  114    115(表4.5)   
               || (または)  114    115(表4.5)   
        真偽  
               0あるいは0.0、NULLならば偽、それいがいは真  114(脚注7)   
               if( a = x + y )は、aの内容が0なら偽、それ以外なら真  114   
        条件文  133   
        単純if 文  120   
        注意点  
               if( 0 = k ) ⇐ 文法的に正しくないため、エラーになる  119(Coffee Break 4.1)   
               if( 0 == k ) ⇐ 文法的には正しいため、エラーにならない  119(Coffee Break 4.1)   
               if( k = 0 ) ⇐ 文法的には正しいため、エラーにならない  119(Coffee Break 4.1)   
        ネスト  
               if 文のネスト  136   
               ネストされたif 文  137(図4.12)   
        複数の文を実行させるには→ブロックを使う  120   
        ミスのあるif 文の動作  123(落とし穴4.2)   
        もし条件式が真ならば文1を行い、偽ならば文2を行う  124   
 imaginary part  87   
 increment インクリメント  148   
 initialization  84   
 inline  399(付録2)   
 Institute of Electrical and Electronics Engineers  65(脚注14)   
 int  42    63    64(表3.4)    69(脚注19)    75    113   
        int main( void )  34   
        int 型へのポインタ  290   
        INT_MAX (int型の最大値)  67(Coffee Break 3.2)   
        INT_MIN (int型の最小値)  67(Coffee Break 3.2)   
        int16_t  64(脚注10)   
        int32_t  64(脚注10)   
        int64_t  64(脚注10)   
        int8_t  64(脚注10)   
        int型  63   
        intを省略  65   
        UINT_MAX (int型の符号なし最大値)  67(Coffee Break 3.2)   
        unsigned int  75   
        最小値  66(Coffee Break 3.2)   
        最大値  66(Coffee Break 3.2)   
 int に対する  
        U (修飾子付きの整数、int に対する)  75   
 INT_  
        INT_MAX (int型の最大値)  66(Coffee Break 3.2)    67(Coffee Break 3.2)   
               リスト3.1 型の情報を表示 (10 行目)  66(Coffee Break 3.2)   
        INT_MIN (int型の最小値)  66(Coffee Break 3.2)    67(Coffee Break 3.2)   
               リスト3.1 型の情報を表示 (11 行目)  66(Coffee Break 3.2)   
 integer type  63   
 iOS  7(脚注12)   
 IR 命令レジスタ  12    13    15   
 ISO  8    64(脚注10)   
  ☝     J
 Java  5    2    6    7(脚注15)    329(Coffee Break 9.3、(脚注a))    339(Coffee Break 9.4)   
 JIS  
        JIS C  22(脚注58)   
        JIS規格(X3010)  8   
  ☝     K
 K&R  214   
 KB キロバイト  11   
 Kbyte キロバイト  11   
 Ken Thompson B言語の開発者  7(脚注15)   
  ☝     L
 L (修飾子付きの整数、long double に対する)  77(脚注29)   
 L (修飾子付きの整数、long int に対する)  75   
 LAN  10   
 LDBL_  
        LDBL_DIG (long double型の精度の桁数)  67(Coffee Break 3.2)   
        LDBL_MAX (long double型の最大値)  67(Coffee Break 3.2)   
        LDBL_MIN (long double型の最小値)  67(Coffee Break 3.2)   
 LF NL line feed、new line 改行  398(表A.1)   
 LF (0x0A) macOS バージョン9以降の改行コード  378(Coffee Break 10.4)   
 LF (0x0A) UNIXの改行コード  378(Coffee Break 10.4)   
 library  25(Coffee Break 1.4)   
 Linus Torvalds  7(脚注20)   
 Linux  7    7(脚注20)    17    18    30    31    355(脚注13)    357   
        CentOS Linuxディストリビューションの一つ  31   
        ext4 ファイルシステム Linux で採用されているファイルシステム  361(Coffee Break 10.2)   
        Ubuntu Linuxディストリビューションの一つ  31   
        開発者  
               Linus Torvalds  7(脚注20)   
 Lisp  5(表1.1)    2   
 LL (修飾子付きの整数、long long int に対する)  75   
 LLONG_  
        LLONG_MAX (long long int型の最大値)  67(Coffee Break 3.2)   
 load  15(脚注43)    286   
 load module  18   
 Local Area Network  10   
 local variable  191   
 log(x) 関数 ln(x) (自然対数)  139(表4.8)   
 log10(x) 関数 log10(x)  139(表4.8)   
 logical operator  114   
 LONG_  
        LONG_MAX (long型の最大値)  67(Coffee Break 3.2)   
 long  63    64(表3.3)    64(表3.4)    65    75   
 long double  63    64(表3.3)    65(表3.5)    77(脚注29)    96   
        LDBL_DIG (long double型の精度の桁数)  67(Coffee Break 3.2)   
        LDBL_MAX (long double型の最大値)  67(Coffee Break 3.2)   
        LDBL_MIN (long double型の最小値)  67(Coffee Break 3.2)   
 long double complex  88   
 long doubleに対する  
        L (修飾子付きの整数、long double に対する)  77(脚注29)   
 long double  96   
 long int  63    64(表3.3)    64(表3.4)    65    75   
        intを省略  65   
        LONG_MAX (long型の最大値)  67(Coffee Break 3.2)   
        LONG_MIN (long型の最小値)  67(Coffee Break 3.2)   
        ULONG_MAX (long型の符号なし最大値)  67(Coffee Break 3.2)   
 long int に対する  
        L (修飾子付きの整数、long int に対する)  75   
 long long  65   
 long long int  63    64(表3.3)    64(表3.4)    75   
        LLONG_MAX (long long int型の最大値)  67(Coffee Break 3.2)   
        LLONG_MIN (long long int型の最小値)  67(Coffee Break 3.2)   
        ULLONG_MAX (long long int型の符号なし最大値)  67(Coffee Break 3.2)   
 long long int に対する  
        LL (修飾子付きの整数、long long int に対する)  75   
  ☝     M
 M_PI (円周率(3.141592653589 793238462643 38327950288))  未掲載   
 machine langugae  16   
 macOS  7(脚注12)    17    18    31   
        CR (0x0D) macOS バージョン9より前の改行コード  378(Coffee Break 10.4)   
        LF (0x0A) macOS バージョン9以降の改行コード  378(Coffee Break 10.4)   
 main  
        int main( void )  34   
        main 関数  35    355   
 main program  181   
 main 関数  141(Coffee Break 4.2)    179    181    183    355    386   
        arg~  
               argc 一般的にmain 関数のint 型のひきすう  356   
               argv 一般的にmain 関数のひきすう(コマンドラインひきすうを格納)  356   
               注意点  
                      argv[0]には、コマンドラインひきすうではなく、コマンドそのものが格納される  356(脚注15)   
        コマンドラインひきすう  355   
        パラメータありmain 関数  355   
        パラメータなしmain 関数  355   
        リスト11.1 main 関数の実装  387   
 Makefile  39   
 malloc(size) 関数 sizeバイトのメモリ領域を割り当てる  227(脚注3)   
 Mark IIコンピュータ  4    7   
 max 関数 (自作)  
        リスト5.13 max 関数  196   
        リスト5.14 誤りのあるmax 関数の例  198   
        リスト5.15 正しいmax 関数の例  198   
        リスト5.16 総称選択を用いたmax 関数  200   
 max 自作関数 最大値を求める  196    197    198   
        リスト5.13 max 関数  196   
        リスト5.14 誤りのあるmax 関数の例  198   
        リスト5.15 正しいmax 関数の例  198   
        リスト5.16 総称選択を用いたmax 関数  200   
 MB メガバイト  11   
 Mbyte メガバイト  11   
 media 媒体  19   
 member  316   
 memcmp(*s1,*s2,size) 関数 メモリ領域s1とs2をsizeバイト分比較する  322    322(脚注11)   
 MiB メガバイト  11   
 Microsoft  5    31    289   
        Visual Studio  31   
 Microsoft Excel 表計算ソフト  396   
 Microsoft 社  319(Coffee Break 9.1)(脚注b)   
 MinGW  31   
 MS-DOS  
        FAT ファイルシステム MS-DOSで採用されたファイルシステム  361(Coffee Break 10.2)   
 MSYS2  31   
 Multi Task OS  18   
 mysqrt(x) 関数  
        リスト5.11 sqrt の計算と表示  193   
 mysqrt(x) 関数 (自作のsqrt(x) 関数)  192   
  ☝     N
 NAK negative acknowledge 否定応答  398(表A.1)   
 nest  122    136   
 NTFS ファイルシステム Windows 2000 以降で採用されたファイルシステム  361(Coffee Break 10.2)   
 NUL null ヌル文字  398(表A.1)   
 NULL  261(脚注22)    289(脚注7)    350    367   
        NULL ポインタ  288   
        ポインタを返す関数のエラーの値  289(脚注7)   
        使用事例  
               リスト 10.2 データの集計 (入力ファイルからデータを読み込む)  352(リスト10.2 11行目)   
               リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 15行目)   
               リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 15行目)   
               リスト 10.5 データファイルへの出力  364(リスト10.5 11, 16行目)   
               リスト 10.6 データの追加  366(リスト10.6 8行目)   
               リスト 10.7 fgets 関数を使用した例  370(リスト10.7 18行目)   
               リスト 10.8 例外処理でgoto 文が有効な例  373(リスト10.8 3~5, 8~10行目)   
               リスト 10.9 goto 文を使用しない例  374(リスト10.9 8, 12, 17行目)   
               リスト 10.10 ファイル入出力サンプル  375(リスト10.10 11, 17, 24行目)   
               リスト 10.12 stderr に置き換えたファイル入出力サンプル  377(リスト10.12 11, 17, 24行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 88行目)   
 NULL pointer  288   
 NULL ポインタ  288    288(脚注7)   
 NULL文字  269    270    271    275    278   
        NULL文字の値は0  269   
        文字配列の終端がわからず表示が文字化けしてしまった例  272   
  ☝     O
 object  195   
 object file  22   
 open  350   
 operand  111   
 Operating System  7   
 optimization  22   
 OR  
        OR論理演算子  114   
        ORを計算する  91(表3.14)   
 ordinal number  345   
 OR論理演算子  114    115(表4.5)    116   
        リスト4.3 ANDとORの使用例  112   
 OR論理演算子による条件式の結合  116   
 OS  7    17    29    229    286    286(脚注2)   
        OSの起動プログラム  17   
        OSの役割  17   
  ☝     P
 parameter パラメータ、ひきすう  177   
 parse  389   
 Pascal  5(表1.1)    2   
 PC  7(脚注19)    13   
 PDP-11  7    7(脚注13)   
 Pentium  318(Coffee Break 9.1)   
 Pipe  18   
 PL/I  5(表1.1)    2    6   
 pointer ポインタ  286    287   
        NULL pointer  288   
 pow(x,y) 関数 xy  139(表4.8)    86(脚注37)    145(Coffee Break 4.3)    176   
        実数整数という計算ではpow関数は使わない  86(脚注37)   
 PowerShell マイクロソフトが開発したシェルプログラム(+スクリプト言語)  28   
 powint 関数  183   
        定義 (別ファイルとして)  178(リスト 5.2 1行目)   
        定義 (main 関数の前で定義)  179(リスト 5.3 3行目)   
        定義 (一般的なプログラム構造)  183(リスト 5.4 18行目)   
        定義 (ひきすう名を省略したプロトタイプ宣言)  184(リスト 5.5 3行目)   
 powint(x,y) 自作関数 xy (x,yはint)  176    177(リスト5.1 9行目)   
        リスト5.2 整数の正のべき乗を計算する関数(その2)  178   
        リスト5.3 整数の正のべき乗を計算する関数(その3)  179   
        リスト5.4 整数の正のべき乗を計算する関数(その4)  182   
        リスト5.5 整数の正のべき乗を計算する関数(その5)  184   
        リスト5.8 整数の正のべき乗を計算する関数(完全版)  185   
 preprocessor  23(Coffee Break 1.3)    181   
 printf 関数  25(Coffee Break 1.4)    41    47    70    71(落とし穴3.1)    74    75    77    112(脚注3)    182    270   
        printf 関数のさまざまな書式指定例  78(表3.12)   
        エラーの事例  
               デバッグ用にprintf 関数を入れると暴走しないが、その文を取ると暴走する  235(落とし穴6.1)   
               文字配列の終端がわからず表示が文字化けしてしまった例  272   
        実行が通過したことを示す  190   
        書式指定  78   
        複数の変数を表示する  47   
        リスト5.10 printf を使ったデバッグの例  190   
 printf を使ったデバッグの例  190   
 Process  18   
 program プログラム  2   
 programming プログラミング  2   
 programming language プログラミング言語  2   
 Prolog  5(表1.1)    2   
 prompt  25(脚注62)    26   
 ptrdiff_t 符号付き整数型 ポインタ変数の差を十分確保できる大きさ  (脚注28)   
 putchar 関数  157    158(リスト4.15 8行目)    159    304   
        使用事例  
               リスト 4.15 入力した文字を出力する(その1)  158(リスト4.15 8行目)   
               リスト 4.16 入力した文字を出力する(その2)  159(リスト4.16 9行目)   
               リスト 8.10 文字列の内容を表示するプログラム (配列版)  304(リスト8.10 11行目)   
               リスト 8.11 文字列の内容を表示するプログラム (ポインタ版)  305(リスト8.11 11行目)   
 puts(str) 関数 文字列strを標準出力へ出力する。文字列strの最後のターミネータ(0)は改行文字として出力される  376   
 Python  5    2   
  ☝     Q
 qsort 関数 クイックソートを行う  338(脚注24)   
 qualifier  63   
  ☝     R
 R  5(表1.1)    2   
 radian  139   
 RAM  10(脚注28)    14    328(Coffee Break 9.3)   
        DRAM ディーラム:揮発性の半導体メモリ  14   
        Dynamic RAM  14   
        SRAM  14   
        Static RAM  14   
 Random Access Memory  14   
 Read Only Memory  14   
 real part  87   
 reference  43   
 register 記憶クラス指定子  205    206    206(脚注22)   
        仮ひきすうには、register以外の記憶クラス指定子を付けることはできない  217   
 register 変数  214   
 register変数  
        仮ひきすうには、register以外の記憶クラス指定子を付けることはできない  217   
 relational operator  109   
 restrict  399(付録2)   
 return 文  140    141(Coffee Break 4.2)    178    179    188    197    204   
        return 0;  35   
        終了コード  141   
 ROM  14    17(脚注46)    329(Coffee Break 9.3)   
 RS record separator レコード区切り  398(表A.1)   
 RS-232C  338(脚注22)   
 runtime library  25   
 RUNさせる  26   
  ☝     S
 save 保存  21   
 scanf 関数  43    73    111    112(脚注3)    116    140    352    354(脚注11)    355   
 scanf 変換文字  112   
        %c (char に対する)  70    73    111    112   
        %d (int に対する)  44    112   
        %e (double に対する)  79   
        %f (printf:float、double に対する、scanf:float に対する)  77    78    112    112(脚注3)   
        %g (double に対する)  79    112(脚注3)   
        %hd (short int に対する)  112   
        %ld (long int に対する)  75    112   
        %lf (double に対する)  78    112    112(脚注3)   
        %lld (long long int に対する)  75   
        %d (ポインタ表示書式指定)  289   
        %s (文字列に対する)  270    270(リスト7.2 13行目)    271(リスト7.3 9行目)   
        %数値.数値e (double に対する)  79   
        %数値.数値f (double に対する)  78   
        %数値f (double に対する)  78   
        使用例  
               %c %c (間にスペース→区切り記号)  117   
               %d %d (間にスペース→区切り記号)  117   
 scope  205   
 SD カード  361(Coffee Break 10.2)   
        FAT ファイルシステム MS-DOSで採用されたファイルシステム  361(Coffee Break 10.2)   
 SDカード  14   
        SDカードメモリ  10   
 Segmentation Fault  41    235(落とし穴6.1)(脚注a)   
 sh UNIXのシェルプログラム  28   
 shell  28   
 short  63    64(表3.3)    64(表3.4)    65   
        SHRT_MAX (short型の最大値)  67(Coffee Break 3.2)   
        SHRT_MIN (short型の最小値)  67(Coffee Break 3.2)   
        USHRT_MAX (short型の符号なし最大値)  67(Coffee Break 3.2)   
 short int  63    64(表3.3)    64(表3.4)    65   
        intを省略  65   
 SHRT_  
        SHRT_MAX (short型の最大値)  67(Coffee Break 3.2)   
 SI shift in シフトイン  398(表A.1)   
 signed  64    65    159   
        signed char  65    159   
        unsigned  64    65    328   
 sin(x) 関数  139(表4.8)    182   
 size_t 符号なし整数型 sizeof 演算子が生成する大きさ  (脚注28)   
 sizeof (*ポインタ)  297   
 sizeof (優先順位)  99(表3.17)   
 sizeof 演算子  97    262    297    319(Coffee Break 9.1)    345(Coffee Break 9.8)   
        sizeof 演算子を使った計算  
               sizeof (*ポインタ)  297   
               「sizeof 配列名 / sizeof 配列名[0]」は配列の要素数を返す  262   
               「sizeof 配列名」は配列全体のサイズを返す  262   
        sizeof charと書いてはいけない。sizeof(char)と書く  97    262(脚注23)   
        sizeof 演算子はlongを返す  97   
        列挙変数の大きさを調べてみよう  345(Coffee Break 9.8)   
        使用事例  
               リスト 3.16 sizeof 演算子の使い方  97(リスト3.16 14, 16, 17行目)   
               リスト 7.6 文字列の長さを知るプログラム (標準関数を使用)  274(リスト7.6 10行目)   
               リスト 7.8 文字列の比較を行うプログラム (標準関数を使用)  275(リスト7.8 11, 14行目)   
               リスト 7.9 文字列の比較を行うプログラム  276(リスト7.9 30, 33行目)   
               リスト 8.3 ポインタ演算のテスト(その1)  294(リスト8.3 14行目)   
               リスト 8.4 ポインタ演算のテスト(その2)  295(リスト8.4 14行目)   
               リスト 8.5 ポインタ演算のテスト(演算子による違い)  296(リスト8.5 15行目)   
               リスト 11.1 main 関数の実装  387(リスト11.1 15行目)   
               リスト 11.4 集計結果出力関数の実装  390(リスト11.4 9行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 45, 147, 167行目)   
 sizeof 演算子を使った計算  
        sizeof (*ポインタ)  297   
 SO shift out シフトアウト  398(表A.1)   
 SOH start of heading ヘッダ開始  398(表A.1)   
 sorting  239   
 source  21   
        source code  21   
        source file  21   
        source list  21   
 specification  7(脚注16)   
 sqrt の計算と表示  193   
 sqrt(x) 関数 \(\sqrt{x}\)  139(表4.8)    237(リスト6.7,31行目)    143    144(リスト4.9 28-29行目)    260   
        使用事例  
               リスト 4.9 2次方程式の実数解を求める  143(リスト4.9 28, 29行目)   
               リスト 4.13 数表  154(リスト4.13 15行目)   
               リスト 4.19 偶数の数表  164(リスト4.19 19行目)   
               リスト 5.11 sqrt の計算と表示  193(リスト5.11 13行目)   
               リスト 6.7 平均値・分散・標準偏差 (その1)  236(リスト6.7 31行目)   
               リスト 6.8 平均値・分散・標準偏差 (その2)  238(リスト6.8 21行目)   
               リスト 6.14 最も離れた席を探す  259(リスト6.14 31行目)   
 sqrt(x) 関数 (自作) → mysqrt(x) 関数  192   
 SRAM  14   
 sscanf(str,fmt, ...) 関数 文字列strからフォーマットfmtに従ってデータを取り出す  388   
 SSD ソリッドステートドライブ:メモリーチップを媒体にした記録装置  10    14   
        Solid State Drive  10   
 stack  207(脚注24)   
 statement  34   
 static 記憶クラス指定子  205    206(脚注22)    213   
 Static RAM  14   
 static variable  213   
 static 変数  212    213    213    215    217    218(図5.23)   
        初期化例  215   
        通用範囲  217    218(図5.23)   
        使用事例  
               リスト 5.23 自分自身が呼ばれた回数を返す関数 (static 変数版)  212(リスト5.23 21行目)   
               リスト 5.24 static 変数 x の初期化例 (正しい例)  213(リスト5.24 3行目)   
               リスト 5.25 static 変数 x の初期化例 (誤りの例)  214(リスト5.25 3行目)   
               リスト 11.1 main 関数の実装  387(リスト11.1 5行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 28行目)   
 stderr 標準エラー出力に対するストリームポインタ  377   
        stderr はリダイレクションの対象にならない  377   
               「>& ファイル名」とすると、このファイルにリダイレクトできる処理系もある  377(脚注26)   
        使用事例  
               リスト 10.12 stderr に置き換えたファイル入出力サンプル  377(リスト10.12 13, 19行目)   
 stdin 標準入力に対するストリームポインタ  377   
        使用事例  
               リスト 7.6 文字列の長さを知るプログラム (標準関数を使用)  274(リスト7.6 10行目)   
               リスト 7.7 文字列の長さを知るプログラム  274(リスト7.7 21行目)   
               リスト 7.8 文字列の比較を行うプログラム (標準関数を使用)  275(リスト7.8 11, 14行目)   
               リスト 7.9 文字列の比較を行うプログラム  276(リスト7.9 30, 33行目)   
 stdout 標準出力に対するストリームポインタ  377   
 storage class  205   
 store  15(脚注43)   
 str_cat 自作関数 文字列の最後にコピーする  282(リスト7.13 15行目)   
 str_cmp 自作関数 文字列を比較する  276(リスト7.9 3行目)    277   
 str_cpoy 自作関数 文字列をコピーする(ポインタ版)  309   
        リスト8.14 文字列をコピーする関数str_copy を呼び出す  309   
        リスト8.15 ポインタを使ったstr_copy 関数のプログラム  310   
 str_cpy 自作関数 文字列をコピーする(配列版)  279(リスト7.11 3行目)    281(リスト7.13 3行目)   
 str_length 自作関数 文字列の長さを返す  275   
 strcat(*s1,*s2) 関数 文字列s1(長さsize)の後に文字列s2を連結する  283(Coffee Break 7.2)   
        ⇒strcat_s 関数を使った方がベター  283(Coffee Break 7.2)   
        メモリ破壊  283(Coffee Break 7.2)   
        使用事例  
               リスト 7.12 文字列の連結を行うプログラム (標準関数を使用)  280(リスト7.12 13行目)   
 strcat_s(*s1,size,*s2) 関数 文字列s1(長さsize)の後に文字列s2を連結する  283(Coffee Break 7.2)   
 strcmp(*s1,*s2) 関数 文字列s1と文字列s2を比較する  275    276(リスト7.8 16行目)   
        使用事例  
               リスト 7.8 文字列の比較を行うプログラム (標準関数を使用)  275(リスト7.8 16行目)   
 strcpy(*s1,*s2) 関数 文字列s2を文字列s1にコピーする  270    271(リスト7.3 8行目)    278    283(Coffee Break 7.2)   
        ⇒strcpy_s 関数を使った方がベター  283(Coffee Break 7.2)   
        メモリ破壊  283(Coffee Break 7.2)   
        使用事例  
               リスト 7.10 文字列のコピーを行うプログラム (標準関数を使用)  278(リスト7.10 11行目)   
               リスト 7.12 文字列の連結を行うプログラム (標準関数を使用)  280(リスト7.12 12行目)   
               リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 13行目)   
               リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 13行目)   
               リスト 10.7 fgets 関数を使用した例  370(リスト10.7 16行目)   
 strcpy_s(*s1,size,*s2) 関数 文字列s2を文字列s1(sizeバイト)へコピーする  283(Coffee Break 7.2)   
 strlen(*s) 関数 文字列sの長さを返す  273    274(リスト 7.6 12行目)    284   
        使用事例  
               リスト 7.6 文字列の長さを知るプログラム (標準関数を使用)  274(リスト7.6 12行目)   
 struct  315    316    317    321    322    316   
        使用事例  
               リスト 9.1 構造体の利用  320(リスト9.1 7行目)   
               リスト 9.5 最も離れた席を探す (構造体配列版)  335(リスト9.5 8行目)   
               リスト 9.6 構造体のメンバをポインタを使って参照する  337(リスト9.6 7行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 18行目)   
 structure  314   
 STX start of text テキスト開始  398(表A.1)   
 SUB substitute 置き換え  398(表A.1)   
 subscript 配列の添字  227   
 swap( int *, int * ) 自作関数 実引数の値を交換する  307   
        正しいswap 関数の変数の動き  308(図8.13)   
        リスト8.12 誤りのあるswap 関数の例  306   
        リスト8.13 正しいswap 関数の例  307   
 Swap領域  19(脚注52)   
 switch 文  108(表4.3)    109    126    127    129    132    135    136   
        break 文  127   
        case ラベル  127   
        default ラベル  127   
        if 文との使い分け  135   
        switch 文(breakなし)  130(図4.10)   
        switch 文(breakあり)  127(図4.9)   
        switch 文でbreak 文をすべて省略した例  130   
        switch 文との使い分け  135   
        switch文で表現できることはif文でも表現できる  135   
        使用事例  
               リスト 4.5 入賞者の判別  128(リスト4.5 10行目)   
               リスト 4.6 break 文なしswitch 文  131(リスト4.6 10行目)   
               リスト 4.7 switch 文で月の日数を判断する  132(リスト4.7 10行目)   
               リスト 6.1 配列を使わないプログラム例:複雑で長くなる  224(リスト6.1 14行目)   
 SYN synchronous idle 同期信号  398(表A.1)   
  ☝     T
 TAB  52    398(表A.1)   
        TABキー  35   
 tag  316   
 tan(x) 関数  139(表4.8)   
 terminal window  21   
 terminator  261    301   
 Thrashing スラッシング  19(脚注52)   
 times() 関数 自作関数 自分自身が何回呼ばれたかを返す  210    212   
        リスト5.20 times 関数の使用例  210   
        リスト5.21 自分自身が呼ばれた回数を返す関数 (誤りの例)  211   
        リスト5.22 自分自身が呼ばれた回数を返す関数 (グローバル変数版)  211   
        リスト5.23 自分自身が呼ばれた回数を返す関数 (static 変数版)  212   
 tm 構造体  330   
 trace  26   
 true  86    87    109   
 two's complement  68(Coffee Break 3.4)   
 type  42    63   
        enumeration type 列挙型  343   
 type conversion  100   
 type name  340   
 typedef  206(脚注22)    339    340    341(Coffee Break 9.5)    341(Coffee Break 9.6)    343    346   
        _t (末尾に付ける)  340   
        構文形式  340   
        利点  
               typedef の利点  341   
        使用事例  
               リスト 11.5 夏日判定プログラム  391(リスト11.5 10, 18行目)   
 typedef 宣言  
        構造体宣言とtypedef 宣言は同時に行うのが常套手段  342   
 typing  26   
  ☝     U
 U (修飾子付きの整数、int に対する)  75   
 Ubuntu Linuxディストリビューションの一つ  31   
 UCHAR_  
        UCHAR_MAX (char型の符号なし最大値)  67(Coffee Break 3.2)   
 UEFI  17(脚注46)   
 uint  
        uint16_t  64(脚注10)   
        uint32_t  64(脚注10)   
        uint64_t  64(脚注10)   
        uint8_t  64(脚注10)   
 UINT_  
        UINT_MAX (int型の符号なし最大値)  67(Coffee Break 3.2)   
 ULLONG_  
        ULLONG_MAX (long long int型の符号なし最大値)  67(Coffee Break 3.2)   
 ULONG_  
        ULONG_MAX (long型の符号なし最大値)  67(Coffee Break 3.2)   
 Unicode  69(脚注16)   
 Unified Extensible Firmware Interface  17(脚注46)   
 union  324    325    327    328    331   
        使用事例  
               リスト 9.2 共用体の利用 (その1)  325(リスト9.2 6行目)   
               リスト 9.3 共用体の利用 (その2)  327(リスト9.3 5行目)   
               リスト 9.4 共用体で同じメモリを参照する  328(リスト9.4 5行目)   
 UNIX  7(脚注12)    24    28    29    30    31    142(Coffee Break 4.2)    319(Coffee Break 9.1)(脚注a)    350(脚注6)    378(Coffee Break 10.4)   
        LF (0x0A) UNIXの改行コード  378(Coffee Break 10.4)   
 unsigned  64    65    328   
        unsigned char  65   
        unsigned int  65    75   
        unsigned long  65   
        unsigned long long  65   
        unsigned short  65   
        使用事例  
               リスト 7.8 文字列の比較を行うプログラム (標準関数を使用)  275(リスト7.8 8行目)   
 US unit separator ユニット区切り  398(表A.1)   
 USB メモリ  361(Coffee Break 10.2)   
        FAT ファイルシステム MS-DOSで採用されたファイルシステム  361(Coffee Break 10.2)   
 USHRT_  
        USHRT_MAX (short型の符号なし最大値)  67(Coffee Break 3.2)   
 UTF-8  69(脚注16)    283   
        バイト数  284(表7.1)   
        文字種  284(表7.1)   
  ☝     V
 variable  42    60   
        automatic variable 自動変数  210   
        global variable  211   
        local variable  191   
        static variable  213   
        variable name  42    60   
 VC++ Microsoft Visual C++  236   
 vi  21   
 vim  21   
 Visual  
        Visual Basic  5(表1.1)   
        Visual C#  6   
        Visual C++  289    295   
        Visual Studio  31   
        Visual Studio Code  21   
 Visual C++  289    295   
 void  34    89(脚注40)    184    184(脚注13)    195    202(図5.11)    204   
        int main( void )  34   
        void型  195   
        void型関数  195   
        void型のひきすう⇒「ひきすうがない」という意味  195   
        関数のひきすうを省略すると、void型が指定されたことになる  184(脚注13)   
        リスト5.6 常にゼロを返す計算する関数(その1)  184   
 void 型関数  202(図5.11)    204   
        void 型関数の注意事項  204   
        void 型関数の定義の一般規則例  204(プログラムの形式)   
 void 型関数の注意事項  204   
 volatile  399(表A.2)   
 VT vertical tab 垂直タブ  398(表A.1)   
  ☝     W
 WAN  10   
 warning  22   
 Web上  32   
 while 文  154    108(表4.3)    145    159    161(図4.16)    162(図4.17)    165   
        break 文  165   
        continue 文  162(図4.17)   
        while( 1 ) (無限ループ)  166    168(Coffee Break 4.6)    276(リスト7.9 8行目)   
               使用事例  
                      リスト 7.9 文字列の比較を行うプログラム  276(リスト7.9 8行目)   
                      リスト 7.11 文字列のコピーを行うプログラム  279(リスト7.11 6行目)   
                      リスト 7.13 文字列の複写 (str_cpy 関数)と連結 (str_cat 関数)を行うプログラム  281(リスト7.13 6, 19, 25行目)   
        継続条件  159   
        条件式  154(図4.15)   
        プログラムの形式  154(図4.15)   
        無限ループ  166   
 Wi-Fi  10   
 Wide Area Network  10   
 Windows  6    7(脚注12)    17    18    29    31    142(Coffee Break 4.2)    355(脚注13)    357    378(Coffee Break 10.4)   
        CR (0x0D) + LF (0x0A) Windowsの改行コード  378(Coffee Break 10.4)   
        exFAT ファイルシステム Windows Vista SP1 以降で採用されたファイルシステム  361(Coffee Break 10.2)   
        FAT16 ファイルシステム Windows95 以降で採用されたファイルシステム  361(Coffee Break 10.2)   
        FAT32 ファイルシステム Windows95 以降で採用されたファイルシステム  361(Coffee Break 10.2)   
        NTFS ファイルシステム Windows 2000 以降で採用されたファイルシステム  361(Coffee Break 10.2)   
        Windows Subsystem for Linux  31   
        Windows10  31   
        開発環境  31   
 Windows Embedded CE  361(Coffee Break 10.2, (脚注b))   
 WSL  31    355(脚注13)    357   
  ☝     X
 x=i++;とx=++i;の普通の演算子での表現  149(図4.14)   
 X3J11  7   
 Xcode  31   
  ☝     あ
 アイコン  9   
 アクセス  228    300   
        配列の範囲を超えたアクセス  234(落とし穴6.1)   
        リスト8.8 合計を求める (値のアクセスをポインタで行う版)  300   
        リスト8.9 合計を求める (よりCらしいプログラム)  301   
 アクセスエラー  
        配列の範囲外のアクセスエラー  229(脚注8)   
 アクセス権  358(Coffee Break 10.1)   
 アスタリスク  290    291   
 アスタリスク(*)  46   
 アセンブラ  16    23(Coffee Break 1.3)    329(Coffee Break 9.3、(脚注a))   
        アセンブラの役割  16(図1.9)   
 アセンブリ  
        アセンブリ言語  7    16    23(Coffee Break 1.3)   
        アセンブリプログラム  16   
 アセンブル  23(Coffee Break 1.3)   
 値  
        a == 1 の値  113   
        右辺値  90   
        演算された式は必ず値を持つ  89   
        関数の値  179   
        許容値  193   
        結果の値  180(図5.4)   
        最小値  231   
        最大値  231   
        左辺値  90   
        式 a = b は必ず値を持つ  89   
        条件式  113   
        推測値  193   
        定数値  345   
        ポインタを返す関数のエラーの値  289(脚注7)   
 値渡し  189   
 アップデート  
        マイナーアップデート  8(脚注21)   
        メジャーアップデート  8(脚注21)   
 アドレス  13    14    18    209(脚注28)    269(脚注1)    270    286    287(図8.1)    288    289(脚注10)    295    312(Coffee Break 8.2)    329(Coffee Break 9.3)   
        & (アドレス演算子)  44    111   
        * (ポインタの定義)  290   
        ポインタ変数に可能な演算  
               ポインタ変数+整数  293   
               ポインタ変数ー整数  293   
               ポインタ変数ーポインタ変数  293   
        アドレス0番地(先頭のアドレス)  18    19   
        アドレスが無効になる例  293(落とし穴8.2)   
        アドレスの大きさ  290(脚注11)   
        アドレスを表す定数  303   
        アドレス信号  13   
        偶数アドレス  318(Coffee Break 9.1)   
        静的変数のアドレスは変化することがないのでプログラムの任意の場所で使用できる  293(落とし穴8.2)   
        先頭アドレス  269    269(脚注1)    270    287    303    309    325   
        注意点  
               変数のアドレスはいつまでも使えるとは限らない  293(落とし穴8.2)   
               メモリ中に存在する変数のアドレスは、常に一定となるわけではない  286(落とし穴8.1)   
        配列の先頭アドレスを関数に渡す方法  310   
        配列名は、式の中に書かれた場合、その0番目要素の先頭アドレスになる  298   
        変数のアドレス  287(脚注5)   
        ポインタの大きさ  290(脚注11)   
        メモリアドレス  264   
        リスト8.1 変数 x の配置アドレスを表示する  289   
        リスト8.2 変数 x の配置アドレスを、ポインタを用いて表示する  290   
 アドレス演算子  288    301(落とし穴8.3)    336    337   
        & (アドレス演算子)  288    289(リスト8.1 7行目)   
        優先順位  301(落とし穴8.3)   
 アドレス渡し  309   
 穴  318(Coffee Break 9.1)    319(Coffee Break 9.1)    322   
        構造体には「穴」がある方が普通  319(Coffee Break 9.1)   
 アプリケーション  5(表1.1)   
        アプリケーション開発言語  5   
 アボガドロ定数 (6.02214076×1023 mol-1)  77   
 余り  49    93(表3.15)   
        % (余りを求める演算子、優先順位)  99(表3.17)   
        fmod(x) 関数 x/yの浮動小数点の余り。関数値の符号はxと同じ  96(脚注53)   
        remainder = a - (division = a / b) * b; // 除算の解(division)と余り(remainder)を同時に求める方法  95   
        除算の解と余りを同時に求める方法  95   
        リスト3.13 整数の加算、減算、除算、余り  94   
        割りきれない  49   
        割りきれる  49   
 余りの計算  
        amari = m - m / n * n; // mをnで割ったときの余り(amari)  95   
        余りを求める演算子 (%)  49   
        余りを求める演算子はない(浮動小数点型) ⇒fmod(x) 関数を使う  96   
        リスト3.14 %を用いない余りの計算  95   
 アメリカ合衆国  65(脚注14)   
 誤り  
        定数であるべきデータを変数に格納してしまう  85   
 誤りのあるプログラム  
        同じ名前の関数を二度定義している  198   
        リスト3.10 初期化していない変数の使用例(誤りのあるプログラム)  83   
        リスト5.14 誤りのあるmax 関数の例  198   
 誤りのある変数名  61   
 アライメント  318(Coffee Break 9.1)    319(Coffee Break 9.1)   
 アルゴリズム  2    2    3    107    233(脚注12)   
        2つの整数が割り切れるならば  48   
        2の平方根を求める  193(図5.1)   
        2の補数の求め方  68(Coffee Break 3.4)   
        余りの計算  
               リスト3.14 %を用いない余りの計算  95   
        最大・最小を求める  231   
        算法  2   
        ソーティング  239   
        並べ替え  239   
        入力された値が0でないかチェックする  51   
        ニュートン法  192   
        バブルソート  239   
        ユークリッドの互除法  203   
 アルゴリズムの開発・比較研究  5(表1.1)   
 アルファベット  73   
 アンダースコア  62(Coffee Break 3.1)   
 アンパサンド  44   
 暗黙的  317(脚注8)   
 暗黙の型変換  100    103   
 暗黙の識別子  344(Coffee Break 9.7)   
  ☝     い
 以下  110(表4.4)   
 イコール  42   
 以上  110(表4.4)   
 移植  7(脚注18)    342(脚注27)   
 移植性  7    16    88(Coffee Break 3.5、脚注a)    342   
        移植性が高い  7(脚注18)    342(脚注27)   
        移植性が低い  7(脚注18)   
 位置  
        変数の格納される位置  235(落とし穴6.1)   
 一度初期化した別の変数を用いて、他の変数を初期化する  84   
 一覧表  
        演算子一覧表  99   
        代入演算子一覧表  91(表3.14)   
        優先順位一覧表  99   
 一般形式  
        プログラムの一般形式  180(図5.4)   
 意図しない値  
        初期化を忘れると意図しない値が入っている  84   
 イメージ  
        ポインタ変数  288(図8.2)   
        メモリイメージ  287(図8.1)    304(図8.9)   
 入れ子  136    322(脚注12)   
 インクリメント  148    301   
 インクリメント演算子  148    149   
        ++i の値は、iをインクリメントしたあとの値になる  148   
        i++ の値は、iをインクリメントする前の値になる  148   
        x=i++;とx=++i;の普通の演算子での表現  149(図4.14)   
 インクルード  25    181   
 インクルード宣言  236   
 インクルードファイル  182   
        " (インクルードファイルの指定)  182   
        < (インクルードファイルの指定開始)  182   
        > (インクルードファイルの指定終了)  182   
 インストール  17    31   
 インタフェース設計  386   
 インターネット  5(表1.1)   
        インターネットプロバイダ  10   
 インデント  35    52    122   
 インプットデータ  385   
 引用  
        未定義の値の引用  83(リスト3.10)   
 引用符  70   
        1重引用符  71   
        2重引用符  71   
 引用文字の表示  70   
 イーサネット  10   
  ☝     う
 ウィンドウ  9   
        端末ウィンドウ  28   
 ウォーニング  22    23(表1.2)    102   
        関数の仮ひきすうと実ひきすうのベース型が異なっています  183   
 受付プログラム  326   
 動かす  26   
 内側  
        繰り返し制御の内側からの強制脱出  169   
 右辺値  90    91   
        a=b; という式では、「b」が右辺値  90(脚注45)   
 右辺値式  91   
  ☝     え
 英大文字  
        英小文字を英大文字に変換  173   
 英小文字  113   
        英小文字を英大文字に変換  173   
 液晶ディスプレイ  8   
 エクサ  11   
 エコー 入力をそのまま出力すること  158(脚注50)   
 エスケープシーケンス  35    70    72    272(Coffee Break 7.1)    372(Coffee Break 10.3, (脚注b))   
        \0 (NULL文字)  274   
        \" (ダブルクォーテーション)  272(Coffee Break 7.1)   
        \" (ダブルクォート)  399(付録3)   
        \' (シングルクォーテーション)  272(Coffee Break 7.1)   
        \' (シングルクォート)  399(付録3)   
        \? (疑問符)  399(付録3)   
        \\ (円記号)  399(付録3)   
        \0 (NULL文字)  272(Coffee Break 7.1)    275    310   
        \0xff (2桁の16進数)  399(付録3)   
        \a (警告(ベル) 文字)  399(付録3)   
        \b (バックスペース)  399(付録3)   
        \f (改ページ(フォームフィード))  399(付録3)   
        \n (改行記号)  35    274    399(付録3)   
        \ooo (3桁の8進数)  399(付録3)   
        \r (復帰)  399(付録3)   
        \t (水平タブ)  399(付録3)   
        \v (垂直タブ)  399(付録3)   
        ¥" (ダブルクォーテーション)  272(Coffee Break 7.1(リスト7.5 6行目))   
        ¥' (シングルクォーテーション)  272(Coffee Break 7.1(リスト7.5 7行目))   
        ¥0 (NULL文字)  272(Coffee Break 7.1)    274    275    310   
        ¥n (改行記号)  35    35(脚注1)    274   
        2桁の16進数  399(付録3)   
        3桁の8進数  399(付録3)   
        円記号  399(付録3)   
        改行  399(付録3)   
        改ページ(フォームフィード)  399(付録3)   
        疑問符  399(付録3)   
        警告(ベル) 文字  399(付録3)   
        シングルクォート  399(付録3)   
        垂直タブ  399(付録3)   
        水平タブ  399(付録3)   
        ダブルクォート  399(付録3)   
        バックスペース  399(付録3)   
        復帰  399(付録3)   
        リスト7.5 エスケープシーケンスを使った文字の例  273   
 エスケープシーケンス一覧  399(付録3)   
 エディタ  3    21    28    349   
        Emacs イーマックス:テキストエディタ  21   
        vi  21   
        vim  21   
        Visual Studio Code  21   
 エネルギー  
        リスト3.12 定数の使用例:エネルギーの計算  86   
 絵文字  284(表7.1)   
 エラー  22    23(表1.2)    40   
        Segmentation Fault  41   
        エラーを未然に防ぐ  367   
        コアダンプ  367(脚注21)   
        コンパイルエラー  40    41    86   
        実行時エラー  40    41   
        実行はできるが結果が正しくない  41   
        数学関数の多くは、計算できない値を誤って指定してもエラーとして実行を停止しない  143(脚注31)   
        正しく表示されない  378(Coffee Break 10.4)   
        標準エラー出力  27    28    30    377   
        プログラムの修正数が多いとバグの発生率が高まる  247   
        ポインタ変数の初期化を忘れた  292   
        ポインタを返す関数のエラーの値  289(脚注7)   
        文字配列への代入を行おうとして文法エラーが発生する例  272   
 エラー検出率  183   
        向上  183   
 エラーコード  362   
 エラー出力  
        標準エラー出力  377   
 エラー処理  367   
        0による除算を未然に防ぐ  367   
 エラー対策  367   
        0による除算を未然に防ぐ  367   
 エラーチェック  368   
 エラーチェックの実例  368   
 エラーとなるコメントの書き方  36   
 エラーの事例  
        デバッグ用にprintf 関数を入れると暴走しないが、その文を取ると暴走する  235(落とし穴6.1)   
 エラー発生時の対処  367   
 エラーメッセージ  22    24(図1.11)    30    41   
        Bus error--core dump ポインタによるアクセスエラー  319(Coffee Break 9.1)(脚注a)   
        expected ';' after expression 文の最後にセミコロンがない  41   
        エラーメッセージが出力されない  71   
        エラーメッセージが表示されない  74   
        同じ名前の関数を二度定義している  198   
        関数の仮ひきすうと実ひきすうのベース型が異なっています  183   
        この関数はない  177   
        全角スペース  41   
        そのようなファイルはない  181(脚注9)   
        文の最後にセミコロンがない  41   
 円記号  399(付録3)   
 演算  
        演算された式は必ず値を持つ  89   
        混合演算  96(脚注52)   
        ポインタ演算  266    293    294    296    311(Coffee Break 8.1)    312(Coffee Break 8.1)   
 演算回路  292(脚注14)   
        整数型の演算回路  93(図3.5)   
        浮動小数点型の演算回路  93(図3.5)   
 演算子  88    90   
        ! (否定演算子)  115(表4.5)   
        != (非等号)  114   
        % (余りを求める演算子)  49    93(表3.15)    94    124   
        & (アドレス演算子)  44    111    286(落とし穴8.1)    288    289(リスト8.1 7行目)   
        & (ビット演算子(ビットAND))  99(表3.17)   
        && (かつ)  114    115(表4.5)   
        &= (ANDの結果を代入する)  91(表3.14)   
        &= (ビットANDの結果を代入する)  91(表3.14)   
        * (乗算演算子)  46    93(表3.15)   
        * (乗算演算子、浮動小数点型)  96   
        *= (乗算する)  91(表3.14)   
        + (加算演算子)  46    93(表3.15)   
        + (加算演算子、浮動小数点型)  96   
        += (加える)  91(表3.14)    238   
        - (減算演算子)  46    93(表3.15)   
        - (減算演算子、浮動小数点型)  96   
        -= (減じるる)  91(表3.14)   
        -> (矢印演算子)  336   
        / (除算演算子)  46    93(表3.15)   
        / (除算演算子、浮動小数点型)  96   
        /= (除算する)  91(表3.14)   
        <<= (左にシフトし代入する)  91(表3.14)   
        = (代入する)  42    91(表3.14)   
        == (関係演算子)  48   
        == (等号)  113   
        >>= (右にシフトし代入する)  91(表3.14)   
        ^ (ビット演算子(排他的OR))  91(表3.14)   
        ^= (排他的ORの結果を代入する)  91(表3.14)    91(表3.14)   
        | (ビット演算子(ビットOR))  91(表3.14)   
        |=(ORの結果を代入する)  91(表3.14)   
        |= (ビットORの結果を代入する)  91(表3.14)   
        || (または)  114    115(表4.5)   
        ~ (ビット演算子)  未掲載   
        AND論理演算子  114    116   
        OR論理演算子  114    116   
        sizeof 演算子  97    262    319(Coffee Break 9.1)   
        アドレス演算子  288    301(落とし穴8.3)    336    337   
        インクリメント演算子  148   
        オペランド  111    148(脚注35)   
        関係演算子  110(脚注2)    120   
        間接演算子  291    292    299    336   
        コンマ演算子  251(脚注19)   
        コンマ式  152   
        三項演算子  172   
        算術演算子  93   
        条件演算子  108    172   
        整数型の演算子  93   
        代入演算子  90    110(脚注2)   
        単項演算子  119   
        デクリメント演算子  148   
        被演算子  111    148(脚注35)   
        否定演算子  114    119   
        否定演算子の真理値表  119(表4.7)   
        浮動小数点型の演算子  95   
        浮動小数点型の算術演算子  96(表3.16)   
        矢印演算子  336   
        リスト8.5 ポインタ演算のテスト(演算子による違い)  296   
        論理演算子  114   
 演算子の優先順位  99   
 円周率 (3.141592653589 793238462643 38327950288)  未掲載    140   
 円盤  10   
  ☝     お
 大きい  89(表3.13)   
 大きさ  
        アドレスの大きさ  290(脚注11)   
        ポインタの大きさ  290(脚注11)   
 大文字  73   
        英小文字を英大文字に変換  173   
        大文字→小文字変換  73   
        大文字と小文字が区別される  61   
 落とし穴  
        落とし穴 3.1 printf 関数  71(落とし穴3.1)   
        落とし穴 3.2 除算では分母を括弧でくくりましょう  74(落とし穴3.2)   
        落とし穴 3.3 計算誤差について  79(落とし穴3.3)   
        落とし穴 4.1 数値データと文字データの混在入力  115(落し穴4.1)   
        落とし穴 4.2 ブロック形式を使わないと  122(落とし穴4.2)   
        落とし穴 4.3 caseラベル? defaultラベル?  171(落とし穴4.3)   
        落とし穴 6.1 配列の範囲を超えたアクセス  234(落とし穴6.1)   
        落とし穴 8.1 変数のアドレスをファイルなどに書いてはいけない  286(落とし穴8.1)   
        落とし穴 8.2 変数のアドレスはいつまでも使えるとは限らない  293(落とし穴8.2)   
        落とし穴 8.3 アドレス演算子の優先順位に注意  301(落とし穴8.3)   
        落とし穴 9.1 初期化の最後に「,」を忘れると  332(落とし穴9.1)   
 オブジェクト  22(脚注58)    24(図1.12)    195    287(脚注4)   
 オブジェクトコード  38   
 オブジェクト指向  339(Coffee Break 9.4)   
 オブジェクト指向プログラミング  22(脚注58)    339(Coffee Break 9.4)   
 オブジェクトファイル  22    23(Coffee Break 1.3)    24(図1.11)    24(Coffee Break 1.3)    38    39   
 オブジェクトモジュール  24(Coffee Break 1.3 脚注a)   
 オプション  
        -c (オプション)  38   
        -o (オプション)  38   
        コンパイルオプション  259(脚注21)   
 オペランド  111    148(脚注35)   
 オペレーティングシステム  5(表1.1)    6(脚注9)    7    7(脚注12)    338(脚注21)   
        Android Googleが開発したオペレーティングシステム  7(脚注12)    8(脚注23)    18(脚注49)   
        CentOS Linuxディストリビューションの一つ  31   
        iOS  7(脚注12)   
        Linux  7    17    18    30    31    355(脚注13)    357   
        macOS  7(脚注12)    17    18    31   
        Multi Task OS  18   
        OSの役割  17   
        Ubuntu Linuxディストリビューションの一つ  31   
        UNIX  24    30    31    142(Coffee Break 4.2)    378(Coffee Break 10.4)   
        Windows  7(脚注12)    17    18    142(Coffee Break 4.2)    355(脚注13)    357    378(Coffee Break 10.4)   
        Windows Embedded CE  361(Coffee Break 10.2, (脚注b))   
        Windows Subsystem for Linux  31   
        Windows10  31   
        WSL  31    355(脚注13)    357   
        マルチタスクOS  18    19   
 終わりの印  
        -1  261   
        ターミネータ  261    359(脚注16)   
 終わりの判定  
        入力データの終わりの判定  359   
        リスト10.4 データの集計 (データの終わりを判定する)  360   
 オンラインバンキングシステム  5(表1.1)   
 オーバーフロー  
        整数計算のオーバーフロー  190   
        バッファオーバーフロー  279   
 オープン  350    351    362    363    373   
        オープンしたファイルは必ずクローズしなければならない  372   
        ファイルのオープン  357(Coffee Break 10.1)   
        ファイルのオープンに失敗する原因  362(脚注18)   
  ☝     か
 改行  35    372(Coffee Break 10.3)    399(付録3)   
        環境によって改行を意味する制御コードは異なる  378(Coffee Break 10.4)   
 改行記号  61(脚注5)    117   
 改行コード  372(Coffee Break 10.3)    378(Coffee Break 10.4)   
        CR (0x0D) + LF (0x0A) Windowsの改行コード  378(Coffee Break 10.4)   
        CR (0x0D) macOS バージョン9より前の改行コード  378(Coffee Break 10.4)   
        LF (0x0A) macOS バージョン9以降の改行コード  378(Coffee Break 10.4)   
        LF (0x0A) UNIXの改行コード  378(Coffee Break 10.4)   
 会社  
        Apple アメリカ合衆国に本社があり、IT製品、ソフトウェアを開発し、販売している企業  31   
        Microsoft  5    31    289   
        Microsoft 社  319(Coffee Break 9.1)(脚注b)   
 解釈  
        人間でも解釈しやすいプログラム  52   
 階乗  187    201    202   
        リスト5.9 組み合わせを求める関数 combi  187   
 解析  
        文字列の解析  389   
 階層的にファイルを管理  19   
 解像度  8   
 解読  13   
 解と係数の関係  142(脚注30)   
 概念  
        構造体の概念  314   
        式の概念  88    89   
 解の公式  142   
        解の公式は桁落ちが発生するため、使わない方がよい  142(脚注30)   
 開発環境  5    5(脚注8)    30    31    38   
        Visual C++  289    295   
        Visual Studio  31   
        Windows  31   
        開発環境構築  31   
        ツール  30   
        統合開発環境  25    30   
 開発者  
        Dennis M. Ritchie C言語の開発者  7   
        Ken Thompson B言語の開発者  7(脚注15)   
        Linus Torvalds  7(脚注20)   
 開発手法  
        モジュール化  6   
 開発ツール  31   
        Cygwin シグウィン:Windows OS 上にUNIXと同じコマンドを使えるようにした互換レイヤー  31   
        MinGW  31   
        MSYS2  31   
        WSL  31   
        Xcode  31   
 外部バス  14   
 外部変数  61(脚注4)   
 改ページ(フォームフィード)  399(付録3)   
 カウンタ変数  150    145    162   
        カウンタ変数更新のための増分値  146   
        カウンタ変数の型は整数型に限定した方がよい  150   
        カウンタ変数の更新  146(図4.13 プログラムの形式)   
        カウンタ変数の初期値  146   
        カウンタ変数を浮動小数点型にしたらどうなるか  150   
        複数のカウンタ変数を設定  152   
 カウンタ方式  145    146   
        カウンタ変数  145   
 カウントアップ  155(脚注44)   
 科学技術計算  5(表1.1)    6   
 科学定数  85(脚注36)   
 書き方  
        エラーとなるコメントの書き方  36   
        コメントの書き方  36   
        リスト2.3 コメントの書き方(その1、複数行にわたって書く)  36   
        リスト2.4 コメントの書き方(その2、命令文の後ろに書く)  36   
        リスト2.6 コメントの書き方(その4、//を使って書く)  37   
 かくっこ  226    227    334   
 各自の環境上の型の精度について  66(Coffee Break 3.2)   
 学習  
        学問に王道なし  20   
        プログラミングの学習  30   
 各種の型の最小値  232   
 各種の型の最大値  232   
 学生  
        ある高校の学生の身長  236(表6.2)   
 拡張子  23(Coffee Break 1.3)    31    182   
        .c  182   
        .c (ソースファイルの拡張子)  182   
        .ccp  182(脚注11)   
        .exe  31   
        .h  23(Coffee Break 1.3)    182(脚注11)   
        .c (ヘッダファイルの拡張子)  182   
        命名規則  168(脚注55)   
 拡張倍精度浮動小数点型  64(表3.3)   
 角度の単位  139   
 格納  
        2次元配列のデータは、「行方向」に格納される  263   
        変数の格納される位置  235(落とし穴6.1)   
 格納領域  
        int array[5]; と定義した時の配列データの格納領域  226(図6.4)   
 確保  
        配列は、それを確保するための領域が必要になる  238   
 加算  13    91(表3.14)    93(表3.15)   
        + (加算演算子、優先順位)  99(表3.17)   
        リスト3.13 整数の加算、減算、除算、余り  94   
 加算演算子  46   
 加算回路  93   
 可視化  380    396   
 数  
        順序数  345   
        負の数  64   
 数当てゲーム  152   
 仮数部  65   
 仮想記憶  328(Coffee Break 9.3)   
 画像編集  5(表1.1)   
 仮想メモリ  18    19   
 型  42    62    63    290   
        _Bool型  87   
        _Complex 複素数型 (C99以降)  87    88   
        _Complex_I (マクロ) 虚数単位定数(1.0+i) (C99以降)  88   
        1つの配列を構成する要素は、すべて同じ型である必要がある  227   
        4つの基本型  63   
        bool C++のブーリアン型  87   
        char  63    64(表3.4)    73    111    268    269    270   
        double  63    65(表3.5)    77    95    96    112(脚注3)   
        double complex 実部・虚部がdouble型の複素数型  88   
        float 浮動小数点数  63    65(表3.5)    77(脚注29)    96   
        float complex 実部と虚部がfloat型の複素数  88   
        int  63    64(表3.4)    69(脚注19)    75   
        int16_t  64(脚注10)   
        int32_t  64(脚注10)   
        int64_t  64(脚注10)   
        int8_t  64(脚注10)   
        long double  63    64(表3.3)    65(表3.5)    77(脚注29)    96   
        long double complex  88   
        long int  63    64(表3.3)    64(表3.4)    75   
        long long int  63    64(表3.3)    64(表3.4)    75   
        short int  63    64(表3.3)    64(表3.4)   
        uint16_t  64(脚注10)   
        uint32_t  64(脚注10)   
        uint64_t  64(脚注10)   
        uint8_t  64(脚注10)   
        unsigned int  75   
        void 型関数の注意事項  204   
        void型  195   
        void型関数  195   
        各自の環境上の型の精度について  66(Coffee Break 3.2)   
        関数の型  183   
        関数の仮ひきすうと実ひきすうのベース型が異なっています  183   
        関数のひきすうの型  183   
        基本型  339   
        整数型  63    64   
        派生型  290   
        ポインタが指し示す変数の型を指定しなければならなかった理由  291   
        ポインタには指し示す変数の型を指定する  291(図8.4)   
        ユーザ定義型  339    346   
        列挙型  343    344(Coffee Break 9.7)    346   
 カタカナ  61    283   
        カタカナの変数名は許されない  61   
 型の大きさ  
        sizeof 演算子  97   
 型の情報  
        型の情報を表示  66(Coffee Break 3.2)   
        リスト3.1 型の情報を表示  66(Coffee Break 3.2)   
 型の使用ビット数  63   
 型の精度  64    64(表3.2)    64(表3.3)   
 型変換  100    102    104(脚注58)    196    199    228   
        _Bool→char→short int→int→long int→long long int→float→double→long double  101   
        long int→flaotには注意  101   
        long long int→flaotには注意  101   
        暗黙の型変換  100    103   
        型変換可能な場合は、実ひきすうと仮ひきすうの値を自動的にプロトタイプ宣言で指定した型に変換  197   
        代入  102   
               整数型←浮動小数点型  102   
               浮動小数点型←整数型  102   
        データ型が異なる場合には、精度の高い方へ型変換が行われる  100   
        容易に型変換可能な場合とは  197(脚注19)   
        リスト3.17 型変換による精度の消失  101   
        リスト3.18 型変換と代入演算子の順序  102   
 型名  82   
        double  42   
        int  42    113   
 括弧  53   
        除算では分母を括弧でくくる  74(落とし穴3.2)   
 かつ(AND)  114   
 可読性  35    240    312(Coffee Break 8.1)   
        リスト2.2 ソースコードの可読性を向上させるCプログラム  35   
 画面入出力  
        リスト10.11 画面入出力サンプル  376   
 仮ひきすう  178    183    189    196    197    199    206    207    208    210    216   
        型変換可能な場合は、実ひきすうと仮ひきすうの値を自動的にプロトタイプ宣言で指定した型に変換  197   
        仮ひきすうの宣言に「*」を指定する  308   
        関数の宣言の中での仮ひきすうの配列は、ポインタと同じ  310   
        実ひきすうと仮ひきすうの対応関係  197(図5.9)   
        配列の先頭アドレスを関数に渡す方法  310   
        有効範囲  191   
 カレンダー  
        時間  330   
        時刻  330   
        日付  330   
 環境  
        各自の環境上の型の精度について  66(Coffee Break 3.2)   
        環境によって改行を意味する制御コードは異なる  378(Coffee Break 10.4)   
 関係  
        実ひきすうと仮ひきすうの対応関係  197(図5.9)   
 関係演算  113   
        a == 1 の値  113   
 関係演算子  109    110(表4.4)    110(脚注2)    120   
        != (関係演算子)  110(表4.4)   
        < (関係演算子)  110(表4.4)   
        <= (関係演算子)  110(表4.4)   
        == (関係演算子)  110(表4.4)   
        > (関係演算子)  110(表4.4)   
        >= (関係演算子)  110(表4.4)   
        リスト4.1 関係演算子  110   
 漢字  61    69(脚注17)    283    284(表7.1)   
        漢字の変数名は許されない  61   
 監修者紹介  最後のページ   
 関数  89    138(脚注24)    176    180    183    339(Coffee Break 9.4)    355   
        acos(x) 関数 cos-1(x)  139(表4.8)   
        asin(x) 関数 sin-1(x)  139(表4.8)   
        atan(x) 関数 tan-1(x)  139(表4.8)   
        atan2(x,y) 関数 tan-1(y/x)  139(表4.8)   
        ceil(x) 関数 x以上の最小の整数。ただし、関数値はdoubleになる  139(表4.8)   
        cimag 関数 複素数データの虚部を返す  88   
        cos(x) 関数  139(表4.8)    150(リスト4.11 14行目)    182   
        creal 関数 複素数データの実部を返す  88   
        EOF マクロ  158   
        exit(s) 関数 プログラムを終了させる。sは終了コード  142(Coffee Break 4.2)    350    353   
        exp(x) 関数 ex (指数関数)  139(表4.8)   
        fabs(x) 関数 |x| (絶対値)  139(表4.8)   
        fclose 関数 ファイルを閉じる  352    358(Coffee Break 10.1)    359(Coffee Break 10.1,(脚注b)    371   
               フラッシュ  358(Coffee Break 10.1)   
        feof(fp) 関数 ファイルの終端を判断する関数  368   
        ferror(fp) 関数 エラーの発生を判断する関数  368   
        fflush 関数 バッファに格納されているデータを書き出す  358(Coffee Break 10.1)   
        fgetc(fp) 関数 ファイルから1文字入力する関数  368   
        fgets(*s,size,*fp) 関数 ファイル(fp)から1行入力し、文字列(s)(長さsize)にセットする  273    369    370   
        floor(x) 関数 x以下の最大の整数。ただし、関数値はdoubleになる  139(表4.8)   
        fmod(x) 関数 x/yの浮動小数点の余り。関数値の符号はxと同じ  96(脚注53)    139(表4.8)   
        fopen 関数 ファイルをオープンする  350    354    357(Coffee Break 10.1)    358(Coffee Break 10.1)    362    363    366   
               "a" - ファイルの追加書き込み  358(Coffee Break 10.1)    359(Coffee Break 10.1, (脚注a))    366   
               "r" - ファイルの読み込み  350    358(Coffee Break 10.1)    359(Coffee Break 10.1, (脚注a))   
               "w" - ファイルの書き込み  358(Coffee Break 10.1)    359(Coffee Break 10.1, (脚注a))   
        fprintf 関数 printf 関数のファイル版  363    365   
        fputc(fp) 関数 ファイルに1文字出力する関数  368   
        fputs(str,fp) 関数 ファイル(fp)に文字列(str)を出力する  375   
        fscanf 関数 ファイルから入力する  351    352    359    369    370   
        getchar 関数  157    158(リスト4.15 9行目)    160(Coffee Break 4.5)   
        gets(str) 関数 標準入力から改行文字までの文字列を読み込み、文字列strに格納する  376   
        log(x) 関数 ln(x) (自然対数)  139(表4.8)   
        log10(x) 関数 log10(x)  139(表4.8)   
        main 関数  35    141(Coffee Break 4.2)    183   
        memcmp(*s1,*s2,size) 関数 メモリ領域s1とs2をsizeバイト分比較する  322    322(脚注11)   
        pow(x,y) 関数 xy  139(表4.8)    86(脚注37)    145(Coffee Break 4.3)    176   
        powint(x,y) 自作関数 xy (x,yはint)  176    177(リスト5.1 9行目)   
        printf 関数  25(Coffee Break 1.4)    41    47    70    71(落とし穴3.1)    74    75    77    112(脚注3)    182    270   
        putchar 関数  157    158(リスト4.15 8行目)    304   
        puts(str) 関数 文字列strを標準出力へ出力する。文字列strの最後のターミネータ(0)は改行文字として出力される  376   
        qsort 関数 クイックソートを行う  338(脚注24)   
        return 文  178    179    188   
        scanf 関数  43    73    111    112(脚注3)    116    140    352    354(脚注11)    355   
        sin(x) 関数  139(表4.8)    182   
        sqrt(x) 関数 \(\sqrt{x}\)  139(表4.8)    237(リスト6.7,31行目)    143    144(リスト4.9 28-29行目)    260   
        sscanf(str,fmt, ...) 関数 文字列strからフォーマットfmtに従ってデータを取り出す  388   
        str_cat 自作関数 文字列の最後にコピーする  282(リスト7.13 15行目)   
        str_cmp 自作関数 文字列を比較する  276(リスト7.9 3行目)    277   
        str_cpoy 自作関数 文字列をコピーする(ポインタ版)  309   
               リスト8.14 文字列をコピーする関数str_copy を呼び出す  309   
               リスト8.15 ポインタを使ったstr_copy 関数のプログラム  310   
        str_cpy 自作関数 文字列をコピーする(配列版)  279(リスト7.11 3行目)    281(リスト7.13 3行目)   
        str_length 自作関数 文字列の長さを返す  275   
        strcat(*s1,*s2) 関数 文字列s1の後に文字列s2を連結する  283(Coffee Break 7.2)   
               ⇒strcat_s 関数を使った方がベター  283(Coffee Break 7.2)   
               メモリ破壊  283(Coffee Break 7.2)   
        strcat_s(*s1,size,*s2) 関数 文字列s1(長さsize)の後に文字列s2を連結する  283(Coffee Break 7.2)   
        strcmp(*s1,*s2) 関数 文字列s1と文字列s2を比較する  275    276(リスト7.8 16行目)   
        strcpy(*s1,*s2) 関数 文字列s2を文字列s1にコピーする  270    271(リスト7.3 8行目)    278    283(Coffee Break 7.2)   
               ⇒strcpy_s 関数を使った方がベター  283(Coffee Break 7.2)   
               メモリ破壊  283(Coffee Break 7.2)   
        strcpy_s(*s1,size,*s2) 関数 文字列s2を文字列s1(sizeバイト)へコピーする  283(Coffee Break 7.2)   
        strlen(*s) 関数 文字列sの長さを返す  273    274(リスト 7.6 12行目)    284   
        swap( int *, int * ) 自作関数 実引数の値を交換する  307   
               正しいswap 関数の変数の動き  308(図8.13)   
               リスト8.13 正しいswap 関数の例  307   
        tan(x) 関数  139(表4.8)   
        値渡し  189   
        いろいろな関数の例  200   
        角度の単位はラジアン  139   
        仮ひきすう  
               仮ひきすうの宣言に「*」を指定する  308   
               関数の宣言の中での仮ひきすうの配列は、ポインタと同じ  310   
               配列の先頭アドレスを関数に渡す方法  310   
        関数の値  179   
               関数値を返さない関数  195   
        関数の実行結果  179   
        関数の実行のようす  179   
        関数の実装  385   
        関数の説明  178(図5.2)   
        関数の定義  176    177    186   
               void 型関数  202(図5.11)    204   
                      void 型関数の注意事項  204   
                      void 型関数の定義の一般規則例  204(プログラムの形式)   
               関数宣言  194   
               関数定義の意味  188(図5.7)   
               関数の型  183   
               関数の定義の場所  202(図5.11)   
               関数の名前の重複の禁止  196   
        関数のデバッグ  190   
        関数の名前  
               同じ名前の関数を二度定義することができない  197   
               関数の名前の重複の禁止  196   
               関数名は内容が分かりやすい名前を付ける  199   
        関数の戻り値の型を省略すると、intが指定されたことになる(が避けた方がよい)  184   
        関数の呼び出し  188   
               printf 文で関数が呼び出されたことを示す  190   
               関数の中から別の関数を呼び出す  201   
               関数の呼び出し関係  202   
               関数の呼び出し手順  186    189   
               関数は呼び出されて、初めて実行される  181    190   
               関数呼び出しの際の値のコピー  188(図5.6)   
               実ひきすうの値を仮ひきすうにコピーする  178   
               呼び出し  178   
               呼び出す  176(脚注1)   
        結果の値  180(図5.4)   
        構造体と関数  338   
        数学関数  236   
        デバッグ用にprintf 関数を入れると暴走しないが、その文を取ると暴走する  235(落とし穴6.1)   
        入出力関数  176   
        ひきすう  139    177   
               アドレス渡し  309   
               仮ひきすう  178    189   
               関数のひきすう  
                      関数のひきすうの一般的な記述形式(ひきすうがある場合)  194   
                      関数のひきすうの一般的な記述形式(ひきすうがない場合)  194   
                      関数のひきすうの型  183   
                      関数のひきすうを省略すると、void型が指定されたことになる  184(脚注13)   
                      リスト5.12 関数のひきすうと個数と型の一致  195   
               関数のひきすうの値を更新する  306   
               参照渡し  309   
               実ひきすう  178    189    190   
               実ひきすうの値を仮ひきすうにコピーする  178    189   
               第1ひきすう  178    188(図5.7)   
               第2ひきすう  178    188(図5.7)   
               ひきすうの引き渡し  307(図8.10)   
        標準関数  176    182    273   
        ファイル操作関数  368   
        プログラムの形式・図  
               関数の定義  177(プログラムの形式)   
               関数の説明  178(図5.2)   
               powint 関数の概念  178(図5.3)   
               プログラム一般形式  180(図5.4)   
               関数のプロトタイプ宣言  183(プログラムの形式)   
               関数を導入したプログラムの構造  186(プログラムの形式)   
        ポインタを返す関数のエラーの値  289(脚注7)   
        呼び出し  
               関数が呼ばれたときの処理過程(その1)  207(図5.12)   
               関数が呼ばれたときの処理過程(その2)  207(図5.13)   
               関数が呼ばれたときの処理過程(その3)  208(図5.14)   
               関数が呼ばれたときの処理過程(その4)  208(図5.15)   
               関数が呼ばれたときの処理過程(その5)  208(図5.16)   
               関数が呼ばれたときの処理過程(その6)  209(図5.17)   
               関数が呼ばれたときの処理過程(その7)  209(図5.18)   
               関数が呼ばれたときの処理過程(その8)  210(図5.19)   
               関数が呼ばれたときのプログラム内部の処理過程  207   
        リスト5.13 max 関数  196   
        リスト5.14 誤りのあるmax 関数の例  198   
        リスト5.15 正しいmax 関数の例  198   
        リスト5.16 総称選択を用いたmax 関数  200   
 関数の値  179   
 関数の実行結果  179   
 関数の実行のようす  179   
 関数の実装  385   
 関数の設計  384   
 関数の定義  186   
        void 型関数  202(図5.11)    204   
               void 型関数の注意事項  204   
               void 型関数の定義の一般規則例  204(プログラムの形式)   
        関数の定義の場所  202(図5.11)   
 関数のデバッグ  190   
 関数のひきすう  
        リスト5.12 関数のひきすうと個数と型の一致  195   
 関数のひきすうと個数と型の一致  195   
 関数の戻り値  
        関数の戻り値の型を省略すると、intが指定されたことになる(が避けた方がよい)  184   
 関数の呼び出し  
        printf 文で関数が呼び出されたことを示す  190   
        関数の中から別の関数を呼び出す  201   
        関数の呼び出し関係  202   
 関数プログラム  180(図5.4)   
 関数名  
        関数はその役割に応じて適切な名前を付けることが重要  384   
 間接演算子  291    292    299    336   
 カーソル  44   
  ☝     き
 偽  86    109    113    371   
        Boolean datatype ブーリアン型  86   
        false   86   
        true  86   
        真  86   
        ブーリアン型  86   
        論理型  86   
 記憶域  19   
        変更可能な部分  303   
        変更不可能な部分  303   
 記憶クラス  205    206(脚注22)   
        auto  206(脚注22)   
        extern 記憶クラス指定子  206(脚注22)   
        register  206(脚注22)   
        static  206(脚注22)   
        typedef  206(脚注22)   
 記憶クラス指定子  206    217   
        auto 記憶クラス指定子  205    206(脚注22)     214   
        extern 記憶クラス指定子  205    206   
        register 記憶クラス指定子  206   
        static 記憶クラス指定子  205    206(脚注22)    213   
        仮ひきすうには、register以外の記憶クラス指定子を付けることはできない  217   
 記憶領域  60   
 気温  
        最高気温  380   
        最低気温  380   
 ギガ  11   
 機械学習  5(表1.1)   
 機械語  16    21    23(Coffee Break 1.3)    24(Coffee Break 1.3)    25(脚注63)    34    312(Coffee Break 8.2)   
        機械語プログラム  16    22(図1.10)   
 規格  
        ANSI 規格  321(脚注9)   
 危険性  369   
 記号  88   
 記述  
        文字列定数が連続して記述された場合  321   
 気象的判断基準  
        夏日  380   
        真夏日  380   
        猛暑日  380   
 机上デバッグ  26   
 気象データ  380   
 奇数  
        偶数か奇数かを判断  124   
        リスト4.4 偶数か奇数かの判断  125   
 奇数バイト  319(Coffee Break 9.1)(脚注a)   
 規則  
        命名規則  315(脚注3)   
 きちんとした変数定義をした例  85   
 起動  17   
        OSの起動プログラム  17   
        起動プログラム  17   
 基本型  339   
 基本制御構造  106    106(表4.1)   
        順次  106(表4.1)   
        条件分岐  106(表4.1)   
        ループ(繰り返し)  106(表4.1)   
 基本統計量  
        標準偏差  235   
        分散  235   
        平均値  235   
 疑問符  399(付録3)   
 キャスト  103   
        (型名)(算術演算)  103   
        (型名)定数  103   
        (型名)変数  103   
        使用事例  
               リスト 10.1 データの集計 (手で入力作業をする版)  348(リスト10.1 22行目)   
               リスト 10.2 データの集計 (入力ファイルからデータを読み込む)  352(リスト10.2 29行目)   
               リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 33行目)   
               リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 30行目)   
               リスト 10.5 データファイルへの出力  364(リスト10.5 32行目)   
               リスト 10.7 fgets 関数を使用した例  370(リスト10.7 39行目)   
 キャメルケース  62(Coffee Break 3.1)   
 休止状態  10   
 給与計算  5(表1.1)   
 教育  5(表1.1)   
 境界条件  156    156(脚注45)   
        境界条件のチェック  157   
        ループの境界条件  156   
 境界整合  318(Coffee Break 9.1)   
 強制脱出  170   
        繰り返し制御の内側からの強制脱出  169   
        リスト4.21 goto 文による多重ループの強制脱出(掛け算問題)  169   
 行内コメント  37   
        // (行内コメント)  37   
        リスト2.6 コメントの書き方(その4、//を使って書く)  37   
 行方向  
        2次元配列のデータは、「行方向」に格納される  263   
 共用体  324    325    326    346   
        共用体宣言  324   
        共用体タグ  324   
        共用体変数  324   
        共用体を利用する場面  327   
        初期化  329    331   
        初期化リスト  332   
        特徴  
               共用体の特徴はメモリを共用すること  326   
               共用体を使うとメモリの使用量を減らすことができる  326   
        例  
               符号付き変数、符号なし変数を1つの共用体で保持する例  328   
        リスト9.2 共用体の利用 (その1)  325   
        リスト9.3 共用体の利用 (その2)  327   
        リスト9.4 共用体で同じメモリを参照する  328   
 共用体宣言  324   
 共用体タグ  324   
 共用体変数  324    326   
 行列  250   
        2次元配列  250   
        n×mの行列  252(図6.16)   
        行列の積  254   
               \( \displaystyle c_{ij} = \sum^{p}_{k=1} a_{ik} \times b_{kj}= a_{i1} \times b_{1j} + a_{i2} \times b_{2j} \times \cdots \times a_{ip} \times b_{pj} \)  254   
        行列の和  252   
        積  255   
        リスト6.12 行列の和  252   
        リスト6.13 行列の積  255   
 行列計算  251   
 局所的  205   
 虚数  
        <complex.h>  87    88   
        _ _extension_ _ 拡張機能  88   
        _ _STD_IEC_559_COMPLEX_ _ これが定義されている場合のみ、_Imaginary 型が使用できる  87(脚注39)   
        _Complex 複素数型 (C99以降)  87    88   
        _Complex_I (マクロ) 虚数単位定数(1.0+i) (C99以降)  88   
        _Imaginary 虚数部の値を示す型(C99以降)  87(脚注39)   
        cimag 関数 複素数データの虚部を返す  88   
        complex 複素数型  88   
        creal 関数 複素数データの実部を返す  88   
        double complex 実部・虚部がdouble型の複素数型  88   
        float complex 実部と虚部がfloat型の複素数  88   
        I (虚数、まくろ)  88   
        long double complex  88   
        虚数部の数値  88   
        虚数単位  87   
        虚数部  87    87(脚注39)   
        実数部  87   
        実数部の数値  88   
 虚数解  143   
 巨大なプログラム  53   
 許容値  193   
 距離  
        平面上の2点間の距離 \( ( x_i, y_i )~( x_j, y_j ) \)  258   
               距離 \( = \sqrt{ ( x_i - x_j )^2 + ( y_i - y_j )^2 } \)  258   
 ギリシャ数字  135   
 ギリシャ文字  61    284(表7.1)   
 キロバイト  11   
 禁止  
        関数の名前の重複の禁止  196   
 キー  28   
 キーボード  8    9    28    29    160(Coffee Break 4.5)    223    348    376    377   
        キーボードからの入力  43   
        キーボード入力  44   
        標準入力はキーボードに割り当てられている  377   
 キーワード  61    88    108   
        _Alignas アライメントの指定(C11以降)  399(付録2)   
        _Atomic データの競合性(C11以降)  399(付録2)   
        _Bool 論理型(C99以降)  87    399(付録2)   
        _Complex 複素数型 (C99以降)  87    88    399(付録2)   
        _Generic 総称選択:引数の型に合わせて、呼び出す関数を振り分ける (C11以降)  399(付録2)   
        _Imaginary 虚数部の値を示す型(C99以降)  87(脚注39)    399(付録2)   
        _Noreturn これが示されている関数は、呼び出し側に戻らないことを示す関数指示子(C11以降)  399(付録2)   
        _Static_assert 静的アサート:コンパイル時にチェックを行い、エラーメッセージを表示する(C11以降)  399(付録2)   
        _Thread_local スレッドに対してローカルなオブジェクトであることを示す(C11以降)  399(付録2)   
        alignof アライメント(境界調整)を返す(C11以降)  399(付録2)   
        auto 記憶クラス指定子  205    206(脚注22)     214   
        break 文  108(表4.3)    127    130    131    132    136    165    168(Coffee Break 4.6)    169    170    171   
        case ラベル  127    129    131    132    171(落とし穴4.3)   
        char  127    129    131    132    171(落とし穴4.3)   
        const 修飾子 変数の値を固定にする  85    86   
        continue 文  108(表4.3)    161    162    162(図4.17)    168(Coffee Break 4.6)    370   
        default ラベル  127    129    132    171(落とし穴4.3)   
        do 文 do-while 文のdo  108(表4.3)    145    161    161(図4.16)    162(図4.17)   
        do-while 文  108(表4.3)   
        double  42    63    65(表3.5)    77    95    96    112(脚注3)   
        else 文  108(表4.3)    50    109    124    126(図4.8)    133    134    136    137    138   
        enum 列挙型の定義  343    344    345   
        extern 記憶クラス指定子  205    206    206(脚注22)   
        float 浮動小数点数  63    65(表3.5)    77(脚注29)    96    98   
        for 文  54    55    56    108(表4.3)    145    146    146(図4.13 プログラムの形式)    162(図4.17)    165   
        goto 文  108    167    168(Coffee Break 4.6)    169    170    171    372    373    374   
        if 文  48    53    56    108(表4.3)    109    120    126(図4.8)    133    134    135    136    137    138   
        inline  399(付録2)   
        int  42    63    64(表3.4)    69(脚注19)    75    113   
        long  63    64(表3.3)    64(表3.4)    65    75   
        register 記憶クラス指定子  205    206    206(脚注22)   
        restrict  399(付録2)   
        return 文  140    141(Coffee Break 4.2)    178    179    188    197    204   
        short  63    64(表3.3)    64(表3.4)    65   
        signed  64    65    159   
        sizeof 演算子  97    262    297    319(Coffee Break 9.1)    345(Coffee Break 9.8)   
        static 記憶クラス指定子  205    206(脚注22)    213   
        struct  315    316    317    321    322   
        switch 文  108(表4.3)    109    126    127    129    132    135    136   
        typedef  206(脚注22)    339    340    341(Coffee Break 9.5)    341(Coffee Break 9.6)    343    346   
        unionf  324    325    327    328    331   
        unsigned  64    65    328   
        void  34    89(脚注40)    184    184(脚注13)    195    202(図5.11)    204   
        volatile  399(表A.2)   
        while 文  108(表4.3)    145    154    159    161(図4.16)    162(図4.17)    165   
 キーワード(予約語) 一覧  399(付録2)   
  ☝     く
 偶数  
        偶数か奇数かを判断  124   
        リスト4.4 偶数か奇数かの判断  125   
        リスト4.19 偶数の数表  164   
 偶数アドレス  318(Coffee Break 9.1)   
 空白  61    61(脚注5)    94   
        半角スペース  181(脚注9)   
 区切り  
        改行記号  117   
        改行記号は入力データの区切り記号には使用しない方が安全  117(脚注8)   
        タブ  117   
        入力データの区切り  117   
 九九の掛け算  169   
 グヌー  25(脚注65)   
 区分  19   
 組み合わせ  201    202   
        リスト5.17 組み合わせを求めるより簡潔なプログラム  201   
 組み合わせ数 nCr  176    186   
        リスト5.9 組み合わせを求める関数 combi  187   
 組み合わせを求める関数 combi  187   
 組み込みシステム  328(Coffee Break 9.3)    329(Coffee Break 9.3)   
 クラス  339(Coffee Break 9.4)   
 グラフ  396   
 グラフィカルユーザインタフェース  5   
 グラフ化  380    396   
 グラフの作成  396   
 繰り返し  54    106    145   
        繰り返しの終了  55   
 繰り返し制御の内側からの強制脱出  169   
 クリック  9    9(脚注24)   
 クロスコンパイラ  329(Coffee Break 9.3(脚注b))   
 クロック  15   
        クロック信号  15   
 クローズ  352    373   
        オープンしたファイルは必ずクローズしなければならない  372   
        クローズに失敗する原因  371   
        クローズ漏れ  374   
        ファイルのクローズ  357(Coffee Break 10.1)   
 クローズに失敗する原因  371   
 クローズ漏れ  374   
 グローバル変数  210    211    212    212(脚注30)    213    215    217    218    219(図5.24)   
        グローバル変数  
               通用範囲  219(図5.24)   
        初期化例  215   
        通用範囲  217    219(図5.24)   
        有効範囲  211   
  ☝     け
 警告(ベル) 文字  399(付録3)   
 計算  
        2の平方根を求める  193(図5.1)   
        ANDを計算する  91(表3.14)   
        ORを計算する  91(表3.14)   
        余りの計算  
               amari = m - m / n * n; // mをnで割ったときの余り(amari)  95   
               リスト3.14 %を用いない余りの計算  95   
        加算  91(表3.14)   
        行列計算  251   
        計算してみよう  41   
        減算  91(表3.14)   
        座標計算  257   
        実数整数という計算ではpow関数は使わない  86(脚注37)   
        シフトする  91(表3.14)   
        除算  91(表3.14)   
        剰余する  91(表3.14)   
        数学的計算  255(Coffee Break 6.1)   
        代入  91(表3.14)   
        排他的論理和を計算する  91(表3.14)   
        左にシフトする  91(表3.14)   
        プログラムリスト  
               リスト3.4 文字の計算  72   
               リスト3.5 文字の変換  73   
               リスト3.8 変数を用いた計算  81   
               リスト3.12 定数の使用例:エネルギーの計算  86   
        右にシフトする  91(表3.14)   
        文字どうしの計算  72   
 計算機イプシロン  81(落とし穴3.3(脚注c))   
 計算誤差  6(脚注11)    145(Coffee Break 4.3)    151    151(脚注37)    238   
        0.1を10回加えても1.0にならない  6   
        0.1を2進数に変換すると循環小数になる  6   
        0.1を正しく表現して計算できる10進演算機能  6   
        計算機イプシロン  81(落とし穴3.3(脚注c))   
        計算誤差について  79(落とし穴3.3)   
        誤差の現象  
               桁落ち  81(落とし穴3.3)   
               情報落ち  81(落とし穴3.3)   
               丸め誤差  80(落とし穴3.3)   
        循環小数ではCの実数を正しく表現できない理由  6(脚注10)   
        精度が低い  66   
        使うべきデータ型  
               floatは使うべきではない  66   
               浮動小数点を表現する場合にはdoubleを使用する  66   
        浮動小数点の小数点以下の演算には誤差が付き物  151   
 計算量  145(Coffee Break 4.3)   
 形式  
        CSV形式  381    381(脚注2)   
        データ形式  380   
 計数  
        リスト11.3 夏日計数関数の実装  390   
 継続条件  159   
        ループの継続条件  145    146   
 携帯電話  10   
 桁落ち  81(落とし穴3.3)   
        解の公式は桁落ちが発生するため、使わない方がよい  142(脚注30)   
 桁数  
        DBL_DIG (double型の精度の桁数)  67(Coffee Break 3.2)   
        FLT_DIG (float型の精度の桁数)  67(Coffee Break 3.2)   
        LDBL_DIG (long double型の精度の桁数)  67(Coffee Break 3.2)   
 結果の値  180(図5.4)   
 欠損  
        データ欠損  397(Coffee Break 11.1)   
 結合  
        AND論理演算子による条件式の結合  116   
        OR論理演算子による条件式の結合  116   
        論理演算子による条件式の結合  116   
 結合規則  90    92    99   
        左から右  92(脚注49)    99   
        右から左  92    92(脚注49)    99   
 原因  
        クローズに失敗する原因  371   
        ファイルのオープンに失敗する原因  362(脚注18)   
 研究  5(表1.1)   
 言語  
        assembly language アセンブリ言語  16   
        programming language プログラミング言語  2   
        アセンブリ言語  7    7(脚注14)    16    23(Coffee Break 1.3)   
        アプリケーション開発言語  5   
        高級言語  7(脚注14)    17   
        新言語の開発  5(表1.1)   
        標準言語案  7   
        プログラミング言語  2    16   
 言語文法によってデータの精度が正確に規定されていない理由  67(Coffee Break 3.3)   
 検索  
        リスト6.14 最も離れた席を探す  259   
 減算  13    91(表3.14)    93(表3.15)   
        - (減算演算子、優先順位)  99(表3.17)   
        ポインターポインタ (この2つのポインタは同じ配列の要素)  297   
        リスト3.13 整数の加算、減算、除算、余り  94   
        リスト8.6 ポインタどうしの減算  297   
 減算演算子  46   
 検出  
        リスト6.5 配列とfor 文を用いた体重の最大値と最小値の検出  231   
        リスト6.6 配列を使用しない体重の最大値と最小値の検出  233   
 ゲーム  
        FizzBuzz フィズバズ問題  54   
        数当てゲーム  152   
        言葉遊び  54   
        リスト2.14 FizzBuzzゲームを行うプログラム  54   
        リスト4.12 数当てゲーム  152   
  ☝     こ
 コアダンプ  367(脚注21)   
 光学マウス  9   
 交換  
        2つのデータの交換  240   
 高級言語  7(脚注14)    17   
 合計  299    352   
        リスト4.10 1から10までの和を求める  146   
        リスト4.14 1から10までの和を求める  156   
        リスト8.7 合計を求める (配列版)  299   
        リスト8.8 合計を求める (値のアクセスをポインタで行う版)  300   
        リスト8.9 合計を求める (よりCらしいプログラム)  301   
        リスト8.16 int 型の配列に格納されている数値をすべて合計する関数 (不完全版)  311   
        リスト8.17 int 型の配列に格納されている数値をすべて合計する関数 (引数に配列の要素)  311   
        リスト10.1 データの集計 (手で入力作業をする版)  348   
        リスト10.2 データの集計 (入力ファイルからデータを読み込む)  352   
        リスト10.3 データの集計 (データファイル名の入力)  356   
        リスト10.4 データの集計 (データの終わりを判定する)  360   
        リスト10.5 データファイルへの出力  364   
 高校  
        ある高校の学生の身長  236(表6.2)   
 向上  183   
 更新  
        カウンタ変数更新のための増分値  146   
        関数のひきすうの値を更新する  306   
 更新処理  55   
 構造  
        プログラムの構造  180   
 構造体  258(脚注20)    314    339(Coffee Break 9.4)    341(Coffee Break 9.6)    346    382    383   
        . (構造体メンバの区切り)  320    323   
        FILE 構造体  350    357(Coffee Break 10.1)    358(Coffee Break 10.1)   
        struct  316   
        関数  
               構造体と関数  338   
               構造体は関数のひきすうに指定できる  338   
               構造体は関数の戻り値の型に指定できる  338   
        構造体宣言  343   
        構造体タグ  316   
        構造体タグの省略  317    318   
        構造体タグ名  322(脚注13)   
        構造体テンプレート  316    318   
        構造体には「穴」がある方が普通  319(Coffee Break 9.1)   
        構造体の概念  314   
        構造体の活用  333   
        構造体のコピー  321   
        構造体の代入  321    331   
        構造体のネスト  322   
        構造体の配列  333   
        構造体の無名の穴  318(Coffee Break 9.1)    319(Coffee Break 9.1)    322   
        構造体の利点  
               関連性のある複数の項目をひとまとめにするのが構造体の役割  315   
        構造体配列  
               リスト9.5 最も離れた席を探す (構造体配列版)  335   
        構造体変数  316    320   
        構造体メンバ  320    334   
        初期化  329   
               ネストされた構造体の初期化  330   
        初期化子リスト  331   
        初期化リスト  330   
        入力レコード構造体  389   
        パックされた構造体  319(Coffee Break 9.1)   
        標準ライブラリ  
               tm 構造体  330   
        ピリオド  320    323   
        ポインタ  
               構造体へのポインタ  336   
               リスト9.6 構造体のメンバをポインタを使って参照する  337   
        メンバ  316    318    320    321    322(脚注13)    325    330   
               リスト9.6 構造体のメンバをポインタを使って参照する  337   
        メンバ名  330   
        リスト9.1 構造体の利用  320   
        リスト9.6 構造体のメンバをポインタを使って参照する  337   
 構造体宣言  343   
        構造体宣言とtypedef 宣言は同時に行うのが常套手段  342   
 構造体タグ  316    341(Coffee Break 9.6)    343   
 構造体タグ名  322(脚注13)   
 構造体テンプレート  316    318   
 構造体の初期化  
        ネストされた構造体の初期化  330   
 構造体のネスト  322   
 構造体の無名の穴  318(Coffee Break 9.1)    319(Coffee Break 9.1)    322   
 構造体配列  
        リスト9.5 最も離れた席を探す (構造体配列版)  335   
 構造体変数  316    320   
 構造体メンバ  320    323    334   
 高速  312(Coffee Break 8.1)   
 光速度 (299,792,458 m/s)  85   
 構築  
        開発環境構築  31   
 肯定  89(表3.13)   
 構文形式  340   
 公約数  202    203    204   
        最大公約数  202    203    204   
 効率  
        効率が落ちる  173(脚注59)   
 互換性  67(Coffee Break 3.3)   
 国際電気標準会議  11   
 誤差  
        計算機イプシロン  81(落とし穴3.3(脚注c))   
        計算誤差  145(Coffee Break 4.3)    151    151(脚注37)    238   
        誤差の現象  
               桁落ち  81(落とし穴3.3)   
               情報落ち  81(落とし穴3.3)   
               丸め誤差  80(落とし穴3.3)   
        精度が低い  66   
        使うべきデータ型  
               floatは使うべきではない  66   
               浮動小数点を表現する場合にはdoubleを使用する  66   
        浮動小数点の小数点以下の演算には誤差が付き物  151   
        リスト3.7 丸め誤差  80   
 誤差の現象  
        桁落ち  81(落とし穴3.3)   
        情報落ち  81(落とし穴3.3)   
        丸め誤差  80(落とし穴3.3)   
 故障  368   
 互除法  
        ユークリッドの互除法  203   
 固定値  85   
 誤動作を誘発する可能性  23(表1.2)   
 異なる  
        実行結果が異なる  90   
        精度が異なる  64   
 言葉遊び  54   
 コピー  
        実ひきすうの値を仮ひきすうにコピーする  189   
        配列のコピーは、要素ごとに行う  229   
        文字列のコピー  278   
        リスト7.10 文字列のコピーを行うプログラム (標準関数を使用)  278   
        リスト7.11 文字列のコピーを行うプログラム  279   
        リスト10.10 ファイル入出力サンプル  375   
 コマンド  25    28    38    355   
        bash UNIXのシェルプログラム  28   
        cmd.exe シェルプログラム  28   
        csh UNIXのシェルプログラム  28   
        gcc コマンド  24    25(脚注63)    31    38    236   
        sh UNIXのシェルプログラム  28   
 コマンドひきすう  25(脚注63)   
 コマンドプロンプト  28   
 コマンドライン  31    355    355(脚注12)    356   
 コマンドラインひきすう  355    356   
        main 関数  355   
 ゴミ  206(脚注23)   
        無意味なデータ  206(脚注23)   
 コメント  35    36    45    52   
        */ (コメント終了)  36   
        /* (コメント開始)  36   
        // (行内コメント)  37   
        1行単位でのコメント  37   
        エラーとなるコメントの書き方  36   
        行内コメント  37   
        複数行のコメント  36   
        プログラムリスト  
               リスト2.3 コメントの書き方(その1、複数行にわたって書く)  36   
               リスト2.4 コメントの書き方(その2、命令文の後ろに書く)  36   
               リスト2.5 コメントの書き方(その3、コンパイルエラーとなる例)  37   
               リスト2.6 コメントの書き方(その4、//を使って書く)  37   
        ブロック単位でのコメント  37   
 コメントアウト  
        呼び出し部分をコメントアウト  395   
 コメントの書き方  36   
        コメントの書き方(その1、複数行にわたって書く)  36   
        コメントの書き方(その2、命令文の後ろに書く)  36   
        コメントの書き方(その3、コンパイルエラーとなる例)  35   
        コメントの書き方(その4、//を使って書く)  37   
 小文字  73    113   
        英小文字を英大文字に変換  173   
        大文字→小文字変換  73   
        大文字と小文字が区別される  61   
 混合演算  96(脚注52)    100    103    104(脚注58)   
        1 + 1.2 // 整数値 + 浮動小数点値 ⇒ この結果は浮動小数点値になる  100   
        整数型  100   
        浮動小数点型  100   
 混在  
        ローカル変数とプロトタイプ宣言を混在して定義  196   
 混在入力  115(落し穴4.1)   
        数値データと文字データの混在入力  115(落し穴4.1)   
 コンデンサ  9    14   
 コンパイラ  5(表1.1)    7(脚注17)    22    23(Coffee Break 1.3)    24(図1.11)    32    34    236    317    343   
        Cコンパイラ  7    25   
        gcc コンパイラ  236   
        VC++ コンパイラ  236   
        クロスコンパイラ  329(Coffee Break 9.3(脚注b))   
        コンパイルのみの実行  38   
 コンパイラの違い  90   
 コンパイル  3    22    23(Coffee Break 1.3)    38    56    286   
        アセンブル  23(Coffee Break 1.3)   
        ウォーニング  23(表1.2)   
        エラー  23(表1.2)   
        コンパイルエラー  25    40   
        コンパイルの流れ  24(図1.11)   
        コンパイルのみの実行  38   
        実行させてみよう  27   
        なぜコンパイルとリンクという工程が分かれているか  39   
        プリプロセス  23(Coffee Break 1.3)   
        リンカ  23(Coffee Break 1.3)   
 コンパイルエラー  25    34    40    41    86    312(Coffee Break 8.2)    344   
        リスト2.5 コメントの書き方(その3、コンパイルエラーとなる例)  37   
        リスト2.7 コンパイルエラーとなる誤ったソースコード  40   
 コンパイルエラーとなる誤ったソースコード  40   
 コンパイルオプション  259(脚注21)   
 コンパイル時  215   
 コンパイル単位  216    217    218   
        見えなくなる  218    218(脚注35)   
 コンパイルの流れ  24(図1.11)   
 コンパイルのみの実行  38   
 コンピュータ  
        16ビットコンピュータ  67(Coffee Break 3.3)   
        32ビットコンピュータ  67(Coffee Break 3.3)   
        64ビットコンピュータ  67(Coffee Break 3.3)   
        Mark IIコンピュータ  7   
        PDP-11  7(脚注13)   
        コンピュータ起動時  17   
        コンピュータ入門  8   
        コンピュータの起動  17   
        コンピュータの構成  11   
        コンピュータの動作原理  15   
        コンピュータの中身  8   
        コンピュータの理解する言葉  16   
        コンピュータはプログラムに書かれたとおりに動作する  26   
        フォン・ノイマン型アーキテクチャ  12   
 コンピュータ起動  
        コンピュータ起動時  17   
 コンピュータ入門  8   
 コンピュータの起動  17   
 コンピュータの構成  11   
 コンピュータの動作原理  15   
 コンピュータの中身  8   
 コンピュータの理解する言葉  16   
 コンマ以外の任意の文字  389   
 コンマ演算子  251(脚注19)   
        , (コンマ演算子、優先順位)  99(表3.17)   
 コンマ区切り  
        CSV形式  381    381(脚注2)   
        コンマ区切りのファイル  381   
 コンマ式  152    154   
 コーディングスタイル  53    54   
 コード  
        ASCII コード表  398(付録1)   
        英小文字を英大文字に変換  173   
        エラーコード  362   
        改行コード  378(Coffee Break 10.4)   
        環境によって改行を意味する制御コードは異なる  378(Coffee Break 10.4)   
        終了コード  141    142(Coffee Break 4.2)    351   
        制御コード  378(Coffee Break 10.4)   
        正しく表示されない  378(Coffee Break 10.4)   
        文字コード  71    72    112    113    372(Coffee Break 10.3)   
 コード表  71   
 コード部  286    287(図8.1)   
  ☝     さ
 最高気温  380   
 最上位ビット  64   
        最上位ビットを符号として扱うかどうか  64   
 最小値  66(Coffee Break 3.2)    231    232   
        CHAR_MIN (char型の最小値)  67(Coffee Break 3.2)   
        DBL_MIN (double型の最小値)  66(Coffee Break 3.2)    67(Coffee Break 3.2)   
        FLT_MIN (float型の最小値)  67(Coffee Break 3.2)   
        INT_MIN (int型の最小値)  66(Coffee Break 3.2)    67(Coffee Break 3.2)   
        LDBL_MIN (long double型の最小値)  67(Coffee Break 3.2)   
        LLONG_MIN (long long int型の最小値)  67(Coffee Break 3.2)   
        LONG_MIN (long型の最小値)  67(Coffee Break 3.2)   
        SHRT_MIN (short型の最小値)  67(Coffee Break 3.2)   
        各種の型の最小値  232   
        リスト6.5 配列とfor 文を用いた体重の最大値と最小値の検出  231   
        リスト6.6 配列を使用しない体重の最大値と最小値の検出  233   
 最初に発見された虫の事例  4   
        虫  4   
 最初の文字  60   
        AからZ、aからz、下線  60   
 サイズ  
        アドレスの大きさ  290(脚注11)   
        配列の要素数には変数を指定することもできる⇒動的に配列のサイズを変更できる  249   
        ポインタの大きさ  290(脚注11)   
 最大公約数  202    203    204   
        公約数  202    203    204   
        リスト5.18 最大公約数を求めるプログラム (その1)  203   
        リスト5.19 最大公約数を求めるプログラム (その2)  204   
 最大値  66(Coffee Break 3.2)    231    232   
        CHAR_MAX (char型の最大値)  67(Coffee Break 3.2)   
        DBL_MAX (double型の最大値)  66(Coffee Break 3.2)    67(Coffee Break 3.2)   
        FLT_MAX (float型の最大値)  67(Coffee Break 3.2)   
        INT_MAX (int型の最大値)  66(Coffee Break 3.2)    67(Coffee Break 3.2)   
        LDBL_MAX (long double型の最大値)  67(Coffee Break 3.2)   
        LLONG_MAX (long long int型の最大値)  67(Coffee Break 3.2)   
        LONG_MAX (long型の最大値)  67(Coffee Break 3.2)   
        SHRT_MAX (short型の最大値)  67(Coffee Break 3.2)   
        各種の型の最大値  232   
        リスト6.5 配列とfor 文を用いた体重の最大値と最小値の検出  231   
        リスト6.6 配列を使用しない体重の最大値と最小値の検出  233   
 最低気温  380   
 最低限保証される精度  64   
 最適化  22    23(Coffee Break 1.3)    214    312(Coffee Break 8.1)   
 再配置  18   
 再利用  384    384(脚注6)   
 索引  400   
 削除  368   
 作成  
        グラフの作成  396   
 座席予約システム  5(表1.1)   
 座標  139   
        リスト4.8 半径1の円周上の座標を求める  139   
 座標計算  257   
 左辺値  90    91   
        a=b; という式では、「a」が左辺式(値)  90(脚注45)   
 左辺値.識別子  91(脚注48)   
 左辺値 代入演算子 右辺値  90   
 左辺値式  91    91(脚注48)   
        *式  91(脚注48)   
        1次式ー>識別子  91(脚注48)   
        1次式[式]  91(脚注48)   
        左辺値.識別子  91(脚注48)   
        識別子  91(脚注48)   
 さまざまな変数定義  85   
 三角関数  138   
        三角関数表  150   
        リスト4.11 sin, cosの三角関数  150   
 三項演算子  172   
        三項演算子は、if文を用いるよりも簡潔な表現が可能になる  173   
        三項演算子をif 文で書くと  197   
        式1 ? 式2 : 式3 (三項演算子)  173   
        条件演算子  172   
        使用事例  
               リスト 5.13 max 関数  196(リスト5.13 17行目)   
               リスト 5.14 誤りのあるmax 関数の例  198(リスト5.14 29行目)   
               リスト 5.15 正しいmax 関数の例  198(リスト5.15 24, 29行目)   
               リスト 5.16 総称選択を用いたmax 関数  200(リスト5.16 26, 31行目)   
 三項演算子をif 文で書くと  197   
 三重ループ  170   
        break 文  165   
        continue 文  161   
        do-while 文  161   
        for 文  146   
        while 文  154   
        インクリメント  148   
        カウンタ変数  150   
        デクリメント  148   
        無限ループ  166   
        使用事例  
               リスト 4.22 フラグを使った強制脱出(掛け算問題)  170(リスト4.22 8~28行目)   
               リスト 6.13 行列の積  255(リスト6.13 34~44行目)   
 算術演算子  93   
        整数型の算術演算子  93(表3.15)   
        浮動小数点型の算術演算子  96(表3.16)   
 算術式  83   
 算術論理演算ユニット  13   
 参照  43    45   
        配列の値の参照と代入  228   
 参照渡し  309   
 サンプルプログラム一覧  
        リスト1.1 2つの数を足し算するCプログラム  20   
        リスト2.1 メッセージを表示するCプログラム  34   
        リスト2.2 ソースコードの可読性を向上させるCプログラム  35   
        リスト2.3 コメントの書き方(その1、複数行にわたって書く)  36   
        リスト2.4 コメントの書き方(その2、命令文の後ろに書く)  36   
        リスト2.5 コメントの書き方(その3、コンパイルエラーとなる例)  37   
        リスト2.6 コメントの書き方(その4、//を使って書く)  37   
        リスト2.7 コンパイルエラーとなる誤ったソースコード  40   
        リスト2.8 キーボードからの入力  43   
        リスト2.9 足し算のプログラム  45   
        リスト2.10 四則演算のプログラム  46   
        リスト2.11 2つの整数が割りきれる場合答えを表示するプログラム  49   
        リスト2.12 割りきれない場合の処理を追加したプログラム  50   
        リスト2.13 入力された値が0でないかチェックするプログラム  51   
        リスト2.14 FizzBuzzゲームを行うプログラム  54   
        リスト3.1 型の情報を表示  66(Coffee Break 3.2)   
        リスト3.2 文字の表示  69   
        リスト3.3 引用文字の表示  70   
        リスト3.4 文字の計算  72   
        リスト3.5 文字の変換  73   
        リスト3.6 浮動小数点の表示  73   
        リスト3.7 丸め誤差  80   
        リスト3.8 変数を用いた計算  81   
        リスト3.9 実行文後の変数の定義例  83   
        リスト3.10 初期化していない変数の使用例(誤りのあるプログラム)  83   
        リスト3.11 きちんとした変数定義をした例  85   
        リスト3.12 定数の使用例:エネルギーの計算  86   
        リスト3.13 整数の加算、減算、除算、余り  94   
        リスト3.14 %を用いない余りの計算  95   
        リスト3.15 double 型の加算・減算  96   
        リスト3.16 sizeof 演算子の使い方  97   
        リスト3.17 型変換による精度の消失  101   
        リスト3.18 型変換と代入演算子の順序  102   
        リスト4.1 関係演算子  110   
        リスト4.2 文字の比較  112   
        リスト4.3 ANDとORの使用例  112   
        リスト4.4 偶数か奇数かの判断  125   
        リスト4.5 入賞者の判別  128   
        リスト4.6 break 文なしswitch 文  131   
        リスト4.7 switch 文で月の日数を判断する  132   
        リスト4.8 半径1の円周上の座標を求める  139   
        リスト4.9 2次方程式の実数解を求める  143   
        リスト4.10 1から10までの和を求める  146   
        リスト4.11 sin, cosの三角関数  150   
        リスト4.12 数当てゲーム  152   
        リスト4.13 数表  154   
        リスト4.14 1から10までの和を求める  156   
        リスト4.15 入力した文字を出力する(その1)  158   
        リスト4.16 入力した文字を出力する(その2)  159   
        リスト4.17 do-while 文によるプログラム例  161   
        リスト4.18 厄年ではない年齢を表示する  162   
        リスト4.19 偶数の数表  164   
        リスト4.20 無限ループとbreak の使用例  166   
        リスト4.21 goto 文による多重ループの強制脱出(掛け算問題)  169   
        リスト4.22 フラグを使った強制脱出(掛け算問題)  170   
        リスト5.1 整数の正のべき乗を計算する関数(その1)  177   
        リスト5.2 整数の正のべき乗を計算する関数(その2)  178   
        リスト5.3 整数の正のべき乗を計算する関数(その3)  179   
        リスト5.4 整数の正のべき乗を計算する関数(その4)  182   
        リスト5.5 整数の正のべき乗を計算する関数(その5)  184   
        リスト5.6 常にゼロを返す計算する関数(その1)  184   
        リスト5.7 常にゼロを返す計算する関数(その2)  184   
        リスト5.8 整数の正のべき乗を計算する関数(完全版)  185   
        リスト5.9 組み合わせを求める関数 combi  187   
        リスト5.10 printf を使ったデバッグの例  190   
        リスト5.11 sqrt の計算と表示  193   
        リスト5.12 関数の引数と個数と型の一致  195   
        リスト5.13 max 関数  196   
        リスト5.14 誤りのあるmax 関数の例  198   
        リスト5.15 正しいmax 関数の例  198   
        リスト5.16 総称選択を用いたmax 関数  200   
        リスト5.17 組み合わせを求めるより簡潔なプログラム  201   
        リスト5.18 最大公約数を求めるプログラム (その1)  203   
        リスト5.19 最大公約数を求めるプログラム (その2)  204   
        リスト5.20 times 関数の使用例  210   
        リスト5.21 自分自身が呼ばれた回数を返す関数 (誤りの例)  211   
        リスト5.22 自分自身が呼ばれた回数を返す関数 (グローバル変数版)  211   
        リスト5.23 自分自身が呼ばれた回数を返す関数 (static 変数版)  212   
        リスト5.24 static 変数 x の初期化例 (正しい例)  213   
        リスト5.25 static 変数 x の初期化例 (誤りの例)  214   
        リスト6.1 配列を使わないプログラム例:複雑で長くなる  224   
        リスト6.2 配列を使ったプログラム  225   
        リスト6.3 配列の代入と参照 (入力チェック組込版:23行目以降は省略)  230   
        リスト6.4 配列の代入と参照 (全要素出力版)  230   
        リスト6.5 配列とfor 文を用いた体重の最大値と最小値の検出  231   
        リスト6.6 配列を使用しない体重の最大値と最小値の検出  233   
        リスト6.7 平均値・分散・標準偏差 (その1)  236   
        リスト6.8 平均値・分散・標準偏差 (その2)  238   
        リスト6.9 バブルソートによる並べ替え  245   
        リスト6.10 バブルソートによる並べ替え (マクロ使用版)  248   
        リスト6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249   
        リスト6.12 行列の和  252   
        リスト6.13 行列の積  255   
        リスト6.14 最も離れた席を探す  259   
        リスト7.1 文字 A を表示する  268   
        リスト7.2 文字配列 (char 型の配列) に文字列を格納する  270   
        リスト7.3 配列に文字配列に格納する (標準関数を利用)  271   
        リスト7.4 文字配列の終端がわからないプログラム  271   
        リスト7.5 エスケープシーケンスを使った文字の例  273   
        リスト7.6 文字列の長さを知るプログラム (標準関数を使用)  274   
        リスト7.7 文字列の長さを知るプログラム  274   
        リスト7.8 文字列の比較を行うプログラム (標準関数を使用)  275   
        リスト7.9 文字列の比較を行うプログラム  276   
        リスト7.10 文字列のコピーを行うプログラム (標準関数を使用)  278   
        リスト7.11 文字列のコピーを行うプログラム  279   
        リスト7.12 文字列の連結を行うプログラム (標準関数を使用)  280   
        リスト7.13 文字列の複写 (str_cpy 関数)と連結 (str_cat 関数)を行うプログラム  281   
        リスト9.1 構造体の利用  320   
        リスト9.2 共用体の利用 (その1)  325   
        リスト9.3 共用体の利用 (その2)  327   
        リスト9.4 共用体で同じメモリを参照する  328   
        リスト9.5 最も離れた席を探す (構造体配列版)  335   
        リスト9.6 構造体のメンバをポインタを使って参照する  337   
        リスト8.1 変数 x の配置アドレスを表示する  289   
        リスト8.2 変数 x の配置アドレスを、ポインタを用いて表示する  290   
        リスト8.3 ポインタ演算のテスト(その1)  294   
        リスト8.4 ポインタ演算のテスト(その2)  295   
        リスト8.5 ポインタ演算のテスト(演算子による違い)  296   
        リスト8.6 ポインタどうしの減算  297   
        リスト8.7 合計を求める (配列版)  299   
        リスト8.8 合計を求める (値のアクセスをポインタで行う版)  300   
        リスト8.9 合計を求める (よりCらしいプログラム)  301   
        リスト8.10 文字列の内容を表示するプログラム (配列版)  304   
        リスト8.11 文字列の内容を表示するプログラム (ポインタ版)  305   
        リスト8.12 誤りのあるswap 関数の例  306   
        リスト8.13 正しいswap 関数の例  307   
        リスト8.14 文字列をコピーする関数str_copy を呼び出す  309   
        リスト8.15 ポインタを使ったstr_copy 関数のプログラム  310   
        リスト8.16 int 型の配列に格納されている数値をすべて合計する関数 (不完全版)  311   
        リスト8.17 int 型の配列に格納されている数値をすべて合計する関数 (引数に配列の要素)  311   
        リスト10.1 データの集計 (手で入力作業をする版)  348   
        リスト10.2 データの集計 (入力ファイルからデータを読み込む)  352   
        リスト10.3 データの集計 (データファイル名の入力)  356   
        リスト10.4 データの集計 (データの終わりを判定する)  360   
        リスト10.5 データファイルへの出力  364   
        リスト10.6 データの追加  366   
        リスト10.7 fgets 関数を使用した例  370   
        リスト10.8 例外処理でgoto 文が有効な例  373   
        リスト10.9 goto 文を使用しない例  374   
        リスト10.10 ファイル入出力サンプル  375   
        リスト10.11 画面入出力サンプル  376   
        リスト10.12 stderr に置き換えたファイル入出力サンプル  377   
        リスト11.1 main 関数の実装  387   
        リスト11.2 データ取り出し関数の実装  389   
        リスト11.3 夏日計数関数の実装  390   
        リスト11.4 集計結果出力関数の実装  390   
        リスト11.5 夏日判定プログラム  391   
 算法  2   
        アルゴリズム  2   
 サードパーティ  17(脚注45)   
  ☝     し
 シェル  28    28   
 シェルスクリプト  142(Coffee Break 4.2)   
 シェルプログラム  28   
 時間  330   
 式  88    89    126    127    129   
        ( ) 数式で使う括弧  99(表3.17)   
        -> (優先順位)  99(表3.17)   
        . (優先順位)  99(表3.17)   
        [ ]  99(表3.17)   
        演算された式は必ず値を持つ  89   
        式 a = b は必ず値を持つ  89   
        条件式  109   
        数学的な式の例  89(表3.13)   
        代入式  89    90   
        定数式  75    127    127(脚注16)    129    215   
        配列は式の中ではポインタである  299(脚注21)   
        配列名は、式の中に書かれた場合、その0番目要素の先頭アドレスになる  298   
 式と演算子  88   
 式の概念  88    89   
 式のパターン  
        (a = b) += 3;  正しくない式  92   
        1 + 1.2 // 整数値 + 浮動小数点値 ⇒ この結果は浮動小数点値になる  100   
        a = 3 * ( b = 2 );  89   
        a = b += 3; ⇒ a = ( b += 3 );  92   
        a = ( b + c ) * ( d + e ) ⇒b+c、d+eのどちらが先に計算されるのか分からない  90   
        a = ( i = 3 ) * ( i + 3 ) ⇒i=3、i+3のどちらが先に計算されるのか分からない  90   
        a == 1 の値  113   
        amari = m - m / n * n; // mをnで割ったときの余り(amari)  95   
        int pi = 3.141592653589793; // 小数点以下、切り捨て  92   
        j = ++k / k++; 副作用完了点の規則エラー  90(脚注43)   
        remainder = a - (division = a / b) * b; // 除算の解(division)と余り(remainder)を同時に求める方法  95   
        x += value; ⇒ x = x + value;  91   
        左辺値 代入演算子 右辺値  90   
        式 a = b は必ず値を持つ  89   
 磁気ハードディスク  10   
 式文  89   
 識別子  91(脚注48)   
        暗黙の識別子  344(Coffee Break 9.7)   
        不明な識別子  344(Coffee Break 9.7)   
        予約済み識別子  61    192(脚注15)   
 事故  333   
 時刻  330   
 自作関数  
        max 自作関数 最大値を求める  196    197    198   
               リスト5.13 max 関数  196   
               リスト5.14 誤りのあるmax 関数の例  198   
               リスト5.15 正しいmax 関数の例  198   
               リスト5.16 総称選択を用いたmax 関数  200   
        powint(x,y) 自作関数 xy (x,yはint)  176    177(リスト5.1 9行目)   
        str_cat 自作関数 文字列の最後にコピーする  282(リスト7.13 15行目)   
        str_cmp 自作関数 文字列の長さを返す  276(リスト7.9 3行目)    277   
        str_cpoy 自作関数 文字列をコピーする(ポインタ版)  309   
               リスト8.14 文字列をコピーする関数str_copy を呼び出す  309   
               リスト8.15 ポインタを使ったstr_copy 関数のプログラム  310   
        str_cpy 自作関数 文字列をコピーする(配列版)  279(リスト7.11 3行目)    281(リスト7.13 3行目)   
        str_length 自作関数 文字列の長さを返す  275   
        swap( int *, int * ) 自作関数 実引数の値を交換する  307   
               正しいswap 関数の変数の動き  308(図8.13)   
               リスト8.12 誤りのあるswap 関数の例  306   
               リスト8.13 正しいswap 関数の例  307   
        times() 関数 自作関数 自分自身が何回呼ばれたかを返す  210    212   
               リスト5.20 times 関数の使用例  210   
               リスト5.21 自分自身が呼ばれた回数を返す関数 (誤りの例)  211   
               リスト5.22 自分自身が呼ばれた回数を返す関数 (グローバル変数版)  211   
               リスト5.23 自分自身が呼ばれた回数を返す関数 (static 変数版)  212   
 指示初期化子  330   
        designated initializer 指示初期化子  330   
 磁石  10   
 指数  
        仮数部  65   
        指数表現  65    77   
        指数部  65   
 システム  
        組み込みシステム  328(Coffee Break 9.3)    329(Coffee Break 9.3)   
        システム自身を致命的に破壊する  293   
        ファイルシステム  360(Coffee Break 10.2)    361(Coffee Break 10.2, (脚注a))   
 システム記述  5(表1.1)    6    6(脚注9)    7   
 システムコール  338(脚注21)   
 磁性体  10   
 四則演算  45    46   
        リスト2.10 四則演算のプログラム  46   
 実行  56    391   
        CPUは同時に1つのプログラムしか実行できない  18   
        Cプログラム実行までの手順  24(図1.12)   
        RUNさせる  26   
        動かす  26   
        関数の実行のようす  179   
        関数は呼び出されて、初めて実行される  181   
        実行させてみよう  27   
        実行時エラー  40   
        実行はできるが結果が正しくない  40    41   
        走らせる  26   
        プログラムが実行できるまで  17   
        プログラムが実行できるようになるまで  17   
        プログラムの実行  39   
        プログラムの実行が正常に終了した場合、0を返す  179   
        プログラムの実行が途中で停止してしまう  41   
        プログラム実行の方法  25   
        プログラムを実行させる  26   
 実行アドレス生成  15   
 実行可能ファイル  18    28    31    31(脚注75)   
 実行可能プログラム  24(図1.12)    25    25(脚注63)   
        a.out 実行可能プログラム  25   
 実行形式  18(脚注48)   
 実行結果が異なる  90   
 実行サイクル  15   
 実行させてみよう  27   
 実行時  
        変数の初期化はプログラムの実行時に行われる  84   
 実行時エラー  40    41   
 実行時間  238   
 実行する  26   
 実行速度  19    176   
        多次元配列は実行が遅くなる  265   
 実行はできるが結果が正しくない  40    41   
 実行ファイル  18(脚注48)    39   
 実行文  82   
        リスト3.9 実行文後の変数の定義例  83   
 実行文後の変数の定義例  83   
 実行を一時的に停止させる  26   
 実数  
        倍精度浮動小数点数  63(表3.2)   
        浮動小数点xのx2x*x、x3x*x*xとかく  143   
        浮動小数点数  63(表3.2)   
 実数整数という計算ではpow関数は使わない  86(脚注37)   
 実数解  142    143   
        リスト4.9 2次方程式の実数解を求める  143   
 実数型  
        float type 浮動小数点数型  63   
        余りを求める演算子はない(浮動小数点型) ⇒fmod(x) 関数を使う  96   
        拡張倍精度浮動小数点型  64(表3.3)   
        仮数部  65   
        指数表現  65   
        指数部  65   
        表現できる浮動小数点型の値の範囲  65(表3.5)   
        浮動小数点型  63    65    93   
        浮動小数点型の演算回路  93(図3.5)   
        浮動小数点型の演算子  95   
        浮動小数点型の算術演算子  96(表3.16)   
        浮動小数点の内部表現  65(図3.3)   
 実数部  87   
 実数部の数値  88   
 実装  
        関数の実装  385   
 実体  
        実体がない  346   
 失敗  
        クローズに失敗する原因  371   
        ファイルのオープンに失敗する原因  362(脚注18)   
 実ひきすう  178    183    188    189    190    196    197    199    206   
        型変換可能な場合は、実ひきすうと仮ひきすうの値を自動的にプロトタイプ宣言で指定した型に変換  197   
        実ひきすうと仮ひきすうの対応関係  197(図5.9)   
 実メモリ  18   
 実用的なプログラム  379   
 指定子  
        集合指定子  389   
 視点  
        マクロな視点  382   
        ミクロな視点  382   
 自動変数  206    210    210(脚注29)    211    214    215    293(落とし穴8.2)   
        auto 変数  216   
        register 変数  214   
        仮ひきすう  216   
        初期化  214    215   
 シフト  
        << (シフト演算子、優先順位)  99(表3.17)   
        <<= (左にシフトし代入する)  91(表3.14)   
        >> (シフト演算子、優先順位)  99(表3.17)   
        >>= (右にシフトし代入する)  91(表3.14)   
        シフトする  91(表3.14)   
        左にシフトする  91(表3.14)   
        右にシフトする  91(表3.14)   
 事務計算  5(表1.1)    6   
 ジャンプ  168(Coffee Break 4.6)   
 集計  299   
        リスト8.16 int 型の配列に格納されている数値をすべて合計する関数 (不完全版)  311   
        リスト8.17 int 型の配列に格納されている数値をすべて合計する関数 (引数に配列の要素)  311   
        リスト10.1 データの集計 (手で入力作業をする版)  348   
        リスト10.2 データの集計 (入力ファイルからデータを読み込む)  352   
        リスト10.3 データの集計 (データファイル名の入力)  356   
        リスト10.4 データの集計 (データの終わりを判定する)  360   
        リスト10.5 データファイルへの出力  364   
 集計結果  390   
        リスト11.4 集計結果出力関数の実装  390   
 集計作業  380   
 集合指定子  389   
        コンマ以外の任意の文字  389   
 修飾子  63    64   
        const 修飾子 変数の値を固定にする  85    86   
        long  63   
        short  63   
 修飾子付きの整数  75    75(表3.10)    77(脚注29)   
        floatに対する  
               F (修飾子付きの整数、float に対する)  77(脚注29)   
        int に対する  
               U (修飾子付きの整数、int に対する)  75   
        long doubleに対する  
               L (修飾子付きの整数、long double に対する)  77(脚注29)   
        long int に対する  
               L (修飾子付きの整数、long int に対する)  75   
        long long int に対する  
               LL (修飾子付きの整数、long long int に対する)  75   
 修正  
        プログラムの修正が楽  247   
 修正箇所が少ない  124(落とし穴4.2)   
 修正数  
        プログラムの修正数が多いとバグの発生率が高まる  247   
 集積回路  9   
 終端  
        文字配列の終端がわからず表示が文字化けしてしまった例  272   
        リスト7.4 文字配列の終端がわからないプログラム  271   
 終了  
        プログラムの実行が正常に終了した場合、0を返す  179   
 終了コード  141    141(Coffee Break 4.2)    142(Coffee Break 4.2)    351   
        $? (UNIXで終了コードを格納する変数)  142(Coffee Break 4.2)   
        0 (正常に終了)  141    351   
        0以外 (エラーで終了)  141   
        ERRORLEVEL (Windowsで終了コードを格納する変数)  142(Coffee Break 4.2)   
 終了フラグ  171   
 主記憶装置  10    286   
 出力  30(図1.14)   
        エラーメッセージが出力されない  71   
        入出力  29    56   
        標準エラー出力  27    30   
        標準エラー出力はディスプレイに割り当てられている  377   
        標準出力  27    28    29    157    377   
        標準出力はディスプレイに割り当てられている  377   
        標準入出力  27    28    43   
        標準入出力ライブラリ  28   
        ファイル入出力  43   
        ファイルへの出力  362   
        ファイルへの追加出力  365   
        プログラムの入出力  27   
        リスト10.5 データファイルへの出力  364   
 出力するファイルを指定するコマンド  38   
 出力手順  
        ファイルへの出力手順  
               (1) ファイルをオープンする (最初に一度だけ)  363   
               (2) ファイルにデータを出力する (必要回数)  363   
               (3) ファイルをクローズする (最後に一度だけ)  363   
 出力ファイル  395   
 循環小数  80(落とし穴3.3)   
        0.1を10回加えても1.0にならない  6   
        0.1を2進数に変換すると循環小数になる  6   
        循環小数ではCの実数を正しく表現できない理由  6(脚注10)   
 順次  106(表4.1)   
 順序  107   
 順序数  345   
 準備  
        データの準備  385   
 紹介  
        監修者紹介  最後のページ   
        著者紹介  表紙の裏   
        編者紹介  最後のページ   
        本文デザイン担当者紹介  最後のページ   
 障害  292   
 上級者  3   
 条件  
        0あるいは0.0、NULLならば偽、それいがいは真  114(脚注7)   
        AND論理演算子  114    115(表4.5)   
        if( 0 )は常に偽  113   
        if( 1 )は常に真  113   
        if( a = x + y )は、aの内容が0なら偽、それ以外なら真  114   
        OR論理演算子  114    115(表4.5)   
        かつ(AND)  114   
        境界条件  156    156(脚注45)   
        でない(NOT)  114   
        否定演算子  114    115(表4.5)   
        複数の条件  133   
        または(OR)  114   
        ループの継続条件  145    146   
 条件演算子  108    172   
        三項演算子  172   
        三項演算子は、if文を用いるよりも簡潔な表現が可能になる  173   
        式1 ? 式2 : 式3 (三項演算子)  173   
        条件演算子をif 文で書くと  197   
        使用事例  
               リスト 5.13 max 関数  196(リスト5.13 17行目)   
               リスト 5.14 誤りのあるmax 関数の例  198(リスト5.14 29行目)   
               リスト 5.15 正しいmax 関数の例  198(リスト5.15 24, 29行目)   
               リスト 5.16 総称選択を用いたmax 関数  200(リスト5.16 26, 31行目)   
 条件演算子をif 文で書くと  197   
 条件式  109    113    116    120    126    143    154(図4.15)    161(図4.16)    162(図4.17)   
        a == 1 の値  113   
        式  126   
        条件式を評価する  109   
 条件式の結合  
        AND論理演算子による条件式の結合  116   
        OR論理演算子による条件式の結合  116   
        論理演算子による条件式の結合  116   
 条件判断  48    106   
        もし~ならば、~する  48    106   
        もし~ならば、~する、そうでない場合は~する  50   
 条件文  
        条件文  133   
 条件分岐  48    52    106    106(表4.1)    108    126   
 条件分岐の応用例  138   
 詳細化  382(脚注4)   
 除算  91(表3.14)    93(表3.15)   
        * (乗算演算子、優先順位)  99(表3.17)   
        リスト3.13 整数の加算、減算、除算、余り  94   
 乗算演算子  46   
 乗算回路  93   
 消失  
        精度の消失  104   
 小数点以下  77   
        int pi = 3.141592653589793; // 小数点以下、切り捨て  92   
        整数どうしの除算では小数点以下が切り捨てられる  47   
 少数を正確に表すことはできない  79(落とし穴3.3)   
 小なり  110(表4.4)   
 商品在庫  225   
 情報落ち  81(落とし穴3.3)   
 剰余する  91(表3.14)   
 省略  
        for文内の式の省略  151   
        構造体タグの省略  317    318   
 初期化  45    81    84    146(図4.13 プログラムの形式)    188    189    211    212    212(脚注30)    213    214    215    260    261    262    271    271    292    302    329    330    331    331    301(落とし穴8.3)   
        1次元配列  261   
        2次元配列  262   
        2次元配列の初期化では、int a[ ][10];というように左側のサイズを省略できる  263   
        2次元配列の初期化では、int a[2][2] = { 1,2 }, {3,4}, {5,6}, };というように最後の要素の後にコンマを入れるほうがよい  263   
               ⇒その理由  264   
        2次元配列のデータは、「行方向」に格納される  263   
        char  271   
        一度初期化した別の変数を用いて、他の変数を初期化する  84   
        共用体の初期化  329    331   
        構造体の初期化  329   
               ネストされた構造体の初期化  330   
        初期化を忘れると意図しない値が入っている  84   
        静的な変数  215   
        静的な変数は、明示的に初期化されていない場合、すべて0に初期化される  215   
        注意点  
               初期化の最後に「,」を忘れると  332(落とし穴9.1)   
        ネストされた構造体の初期化  330   
        配列の初期化  
               定義した要素数より初期化の要素が多いときにはエラーとなる  261   
               定義した要素数より初期化の要素が少ないときには、残りの配列は数値的に0で初期化される  261   
               配列を初期化する際には、配列の要素数を省略することができる  261   
        変数の初期化  83   
        変数の初期化はプログラムの実行時に行われる  84   
        ポインタ変数  
               ポインタ変数の初期化  292   
               ポインタ変数は必ず初期化してから使う  292   
        ポインタ変数の初期化の例  
               初期化されていないポインタ変数を利用すると重大な障害を引き起こす  292   
               すでに初期化されている別のポインタを代入する  292   
               変数のアドレスで初期化する  292   
        リスト3.10 初期化していない変数の使用例(誤りのあるプログラム)  83   
        リスト5.24 static 変数 x の初期化例 (正しい例)  213   
        リスト5.25 static 変数 x の初期化例 (誤りの例)  214   
 初期化式  55   
 初期化子リスト  331   
 初期化リスト  330    332   
 初期値  43    83    156(脚注45)    233    330   
        カウンタ変数の初期値  146   
 除算  47    91(表3.14)    93(表3.15)   
        % (余りを求める演算子)  49    94   
        / (除算演算子)  46    93(表3.15)   
        / (除算演算子、浮動小数点型)  96   
        / (除算演算子、優先順位)  99(表3.17)   
        /= (除算する)  91(表3.14)   
        0による除算を未然に防ぐ  367   
        fmod(x) 関数 x/yの浮動小数点の余り。関数値の符号はxと同じ  96(脚注53)   
        余りを求める演算子はない(浮動小数点型) ⇒fmod(x) 関数を使う  96   
        除算では分母を括弧でくくる  74(落とし穴3.2)   
        除算の解と余りを同時に求める方法  95   
        整数型除算の注意点  74(落とし穴3.2)   
        整数どうしの除算  47    94   
        整数どうしの除算では小数点以下が切り捨てられる  47    94   
        ゼロ除算  53   
        リスト2.11 2つの整数が割りきれる場合答えを表示するプログラム  49   
        リスト3.13 整数の加算、減算、除算、余り  94   
 除算演算子  46   
 除算では分母を括弧でくくる  74(落とし穴3.2)   
 除算の解  
        remainder = a - (division = a / b) * b; // 除算の解(division)と余り(remainder)を同時に求める方法  95   
        除算の解と余りを同時に求める方法  95   
 除算の解と余りを同時に求める方法  95   
 書式  351   
 書式指定  78   
        %c (char に対する)  70    73    111    112   
        %d (int に対する)  44    112   
        %e (double に対する)  79   
        %f (printf:float、double に対する、scanf:float に対する)  77    78    112    112(脚注3)   
        %g (double に対する)  79    112(脚注3)   
        %hd (short int に対する)  112   
        %ld (long int に対する)  75    112   
        %lf (double に対する)  78    112    112(脚注3)   
        %lld (long long intに対する)  75   
        %p (ポインタ表示書式指定)  289   
        %s (文字列に対する)  270    270(リスト7.2 13行目)    271(リスト7.3 9行目)   
        %数値.数値e (doubleに対する)  79   
        %数値.数値f (doubleに対する)  78   
        %数値f (doubleに対する)  78   
        printf 関数のさまざまな書式指定例  78(表3.12)   
 初心者  3   
 処理  
        逐次処理  167   
        場合分けの処理  126   
        バッチ処理  141(Coffee Break 4.2)   
        ひきすうの処理  188   
        ファイル処理  171   
        ループ処理  145   
        例外処理  171    372    373   
 処理過程  
        関数が呼ばれたときの処理過程(その1)  207(図5.12)   
        関数が呼ばれたときの処理過程(その2)  207(図5.13)   
        関数が呼ばれたときの処理過程(その3)  208(図5.14)   
        関数が呼ばれたときの処理過程(その4)  208(図5.15)   
        関数が呼ばれたときの処理過程(その5)  208(図5.16)   
        関数が呼ばれたときの処理過程(その6)  209(図5.17)   
        関数が呼ばれたときの処理過程(その7)  209(図5.18)   
        関数が呼ばれたときの処理過程(その8)  210(図5.19)   
        関数が呼ばれたときのプログラム内部の処理過程  207   
 処理速度  312(Coffee Break 8.1)   
 処理の流れ  107   
 仕様  7(脚注16)    7    138    138(脚注23)   
 使用できる変数名  60   
 使用量  
        メモリ使用量  328(Coffee Break 9.3)    329(Coffee Break 9.3)   
        メモリの使用量  326   
 使用例  
        %c %c (間にスペース→区切り記号)  117   
        %d %d (間にスペース→区切り記号)  117   
 シリアル通信  338(脚注22)   
 真  86    109    113    371   
        Boolean datatype ブーリアン型  86   
        false   86   
        true  86   
        偽  86   
        ブーリアン型  86   
        論理型  86   
 真偽  
        0あるいは0.0、NULLならば偽、それいがいは真  114(脚注7)   
        if( a = x + y )は、aの内容が0なら偽、それ以外なら真  114   
 シングルクォーテーション  69    70   
        ASCII アスキー:英字を中心とした7ビットの文字コード  69(脚注16)   
        Unicode  69(脚注16)   
        UTF-8  69(脚注16)    283   
               バイト数  284(表7.1)   
               文字種  284(表7.1)   
        漢字  69(脚注17)   
        文字の表現  69   
        ユニコード  69(脚注16)   
        リスト3.2 文字の表示  69   
 シングルクォート  399(付録3)   
 新言語の開発  5(表1.1)   
 信号  
        アドレス信号  13   
        制御信号  13   
        データ信号  13   
 人工知能の研究  5(表1.1)   
 深層学習  5(表1.1)   
 身長  
        ある高校の学生の身長  236(表6.2)   
 人物  
        Brian W. Kernighan 「プログラミング言語C」(K&R)の著者の一人  7   
        Dennis M. Ritchie C言語の開発者  7   
        Ken Thompson B言語の開発者  7(脚注15)   
        Linus Torvalds  7(脚注20)   
 シンボル  16   
 シンボル情報  38   
 真理値表  116(表4.6)   
        否定演算子の真理値表  119(表4.7)   
        論理演算の真理値表  116(表4.6)   
 シーケンス  107   
  ☝     す
 推測値  192    193   
 垂直タブ  399(付録3)   
 水平タブ  399(付録3)   
 数学関数  142    236   
        数学関数の多くは、計算できない値を誤って指定してもエラーとして実行を停止しない  143(脚注31)   
 数学関数群  138   
 数学的計算  255(Coffee Break 6.1)   
 数学的な式の例  89(表3.13)   
 数学ライブラリ  25(Coffee Break 1.4)    236   
 数値演算プロセッサ  319(Coffee Break 9.1)   
 数値計算  5(表1.1)    6(脚注11)   
 数値定数マクロ  247    251   
 数値データ  115(落し穴4.1)   
 数値データと文字データの混在入力  115(落し穴4.1)   
 数表  155   
        リスト4.13 数表  154   
        リスト4.19 偶数の数表  164   
 すきま  318(Coffee Break 9.1)   
 スコープ  205    216    345    391   
        通用範囲  205   
 スタイル  
        コーディングスタイル  53    54   
 スタック  207(脚注24)    209(脚注27)   
 スタンバイ機能  10   
 スタートアップルーチン  286(脚注1)   
 ストア  15    15(脚注43)   
 ストリームポインタ  350    351    352    357(Coffee Break 10.1)    358(Coffee Break 10.1)    362    363    367    391   
        stderr 標準エラー出力に対するストリームポインタ  377   
        stdin 標準入力に対するストリームポインタ  377   
        stdout 標準出力に対するストリームポインタ  377   
 スナップショット  3    26(脚注66)   
 スネークケース  62(Coffee Break 3.1)   
 スペース  35    61(脚注5)   
        半角スペース  181(脚注9)   
 スミソニアン博物館  4   
 スライドパッド  9   
 スラッシュ(/)  46   
 スラッシング  19(脚注52)   
 スリープ  10   
 スワップ領域  19(脚注52)   
 スーパーコンピュータ  7   
 スーパーマーケット  225   
  ☝     せ
 正規表現  389(脚注10)   
 制御  56   
        繰り返し制御の内側からの強制脱出  169   
        ハードウェア制御  329(Coffee Break 9.3)   
 制御コード  372(Coffee Break 10.3)    378(Coffee Break 10.4)   
        環境によって改行を意味する制御コードは異なる  378(Coffee Break 10.4)   
        正しく表示されない  378(Coffee Break 10.4)   
 制御信号  13   
 制御の流れ  106   
 制御部  12   
 税金計算  5(表1.1)   
 整形  52   
        プログラムの整形  52   
 整合  
        境界整合  318(Coffee Break 9.1)   
 正常  
        プログラムの実行が正常に終了した場合、0を返す  179   
 正常終了  35   
 整数  71   
        修飾子付きの整数  75    75(表3.10)   
        整数どうしの除算では小数点以下が切り捨てられる  47    94   
        小さな整数  63(表3.2)   
        符号付整数  63(表3.2)    65   
        符号なし整数  65   
 整数型  63    64    93    100    129   
        int16_t  64(脚注10)   
        int32_t  64(脚注10)   
        int64_t  64(脚注10)   
        int8_t  64(脚注10)   
        uint16_t  64(脚注10)   
        uint32_t  64(脚注10)   
        uint64_t  64(脚注10)   
        uint8_t  64(脚注10)   
        長い整数型  64(表3.3)   
        短い整数型  64(表3.3)   
        より長い整数型  64(表3.3)   
 整数型除算の注意点  74(落とし穴3.2)   
 整数型の演算回路  93(図3.5)   
 整数型の算術演算子  93(表3.15)   
 整数計算のオーバーフロー  190   
 整数定数  75   
 整数どうしの除算  47    94   
 整数どうしの除算では小数点以下が切り捨てられる  47    94   
 整数の10進数以外の表記法  76   
 整数の加算、減算、除算、余り  94   
 整数の除算  
        リスト2.11 2つの整数が割りきれる場合答えを表示するプログラム  49   
 整数の正のべき乗を計算する関数(完全版)  185   
 整数の正のべき乗を計算する関数(その1)  177   
 整数の正のべき乗を計算する関数(その2)  178   
 整数の正のべき乗を計算する関数(その3)  179   
 整数の正のべき乗を計算する関数(その4)  182   
 整数の正のべき乗を計算する関数(その5)  184   
 整数の内部表現  68(Coffee Break 3.4)   
 静的な変数  212    215    217   
        static 変数  212    217    218(図5.23)   
        グローバル変数  212    217    218    219(図5.24)   
        初期化  214    215   
               静的な変数は、明示的に初期化されていない場合、すべて0に初期化される  215   
        通用範囲  217   
        明示的に初期化しない場合には0に初期化される  213   
 静的な変数  293(落とし穴8.2)   
        static 変数  213   
        グローバル変数  213   
        静的変数のアドレスは変化することがないのでプログラムの任意の場所で使用できる  293(落とし穴8.2)   
 精度  66(Coffee Break 3.2)    193(脚注17)    252   
        DBL_DIG (double型の精度の桁数)  66(Coffee Break 3.2)    67(Coffee Break 3.2)   
        FLT_DIG (float型の精度の桁数)  67(Coffee Break 3.2)   
        LDBL_DIG (long double型の精度の桁数)  67(Coffee Break 3.2)   
        各自の環境上の型の精度について  66(Coffee Break 3.2)   
        型の精度  64    64(表3.2)    64(表3.3)   
        言語文法によってデータの精度が正確に規定されていない理由  67(Coffee Break 3.3)   
        最低限保証される精度  64   
        小さい数の平方根  193(脚注17)   
        使うべきデータ型  
               floatは使うべきではない  66   
        データ型が異なる場合には、精度の高い方へ型変換が行われる  100   
        データの表現精度  67(Coffee Break 3.3)   
        浮動小数点の小数点以下の演算には誤差が付き物  151   
 精度が異なる  64   
 精度が低い  66   
 精度の消失  104   
        リスト3.17 型変換による精度の消失  101   
 整数型の演算子  93   
 世界標準化機構(ISO)  8   
 積  255   
        行列の積  254   
        リスト6.13 行列の積  255   
 セクタ  19(脚注55)   
 ゼタ  11   
 設計  382   
        インタフェース設計  386   
        関数の設計  384   
        関数はその役割に応じて適切な名前を付けることが重要  384   
        設計の基本は、問題を分割していくこと  382   
        データ設計  384   
        プログラムの設計  382   
 セット  62(脚注8)   
 接頭部分  62(Coffee Break 3.1)   
 接続  
        無線接続  9   
        有線接続  9   
 接尾部分  62(Coffee Break 3.1)   
 節約  
        メモリ節約  329(Coffee Break 9.3)   
        メモリの節約  326   
 セミコロン  34    89    122   
        文の最後にセミコロンがない  41   
 ゼロ  
        リスト5.6 常にゼロを返す計算する関数(その1)  184   
        リスト5.7 常にゼロを返す計算する関数(その2)  184   
 ゼロ除算  53   
 全角スペース  41   
 宣言  346   
        extern 宣言  218   
        インクルード宣言  236   
        関数宣言  194   
        関数の宣言の中での仮ひきすうの配列は、ポインタと同じ  310   
        共用体宣言  324   
        構造体宣言  315    317    343   
        宣言と定義の違い  346(図9.7)   
        プロトタイプ宣言  180(図5.4)    181    182    183    184    186    192(脚注15)    196    197    385    386   
        ローカル変数とプロトタイプ宣言を混在して定義  196   
 先頭アドレス  269    269(脚注1)    270    287    303    309    325   
        配列の先頭アドレスを関数に渡す方法  310   
        配列名は、式の中に書かれた場合、その0番目要素の先頭アドレスになる  298   
 先頭ポインタ  305   
 専用線  10   
 全要素出力  
        リスト6.4 配列の代入と参照 (全要素出力版)  230   
  ☝     そ
 総当たり  259(図6.17)   
 相違  
        ポインタと配列の相違  302   
 増加  
        ポインタの値を1つづつ増加  296(図8.5)   
        ポインタの値を3つづつ増加  297(リスト8.5 12行目)   
 早期発見  397(Coffee Break 11.1)   
 総称選択  199   
 増分値  
        カウンタ変数更新のための増分値  146   
 総和  
        リスト4.10 1から10までの和を求める  146   
        リスト4.14 1から10までの和を求める  156   
        リスト8.7 合計を求める (配列版)  299   
        リスト8.8 合計を求める (値のアクセスをポインタで行う版)  300   
 添字  225(脚注1)    227   
        最後の添字は「配列の大きさ-1」である  227   
        添字のチェック  225(脚注1)   
        配列  225(脚注1)    227   
        配列の先頭の位置は1番目ではなく、0番目である  226    227   
        配列の添字が0から始まっていることを忘れてはならない  255(Coffee Break 6.1)   
 速度  
        高速なプログラム  238   
        実行時間  238   
        処理速度  312(Coffee Break 8.1)   
 ソリッドステートドライブ  10   
 ソース  21   
 ソースコード  21    34   
        ソースコードの可読性を向上させるCプログラム  35   
        ソースコードの読み直し  26   
 ソースファイル  21    24(図1.11)    181    182   
        .c (ソースファイルの拡張子)  182   
        複数のソースファイル  24(Coffee Break 1.3)   
 ソースファイルを作る  20   
 ソースプログラム  56    286   
 ソースリスト  21   
 ソーティング  239   
        バブルソート  239   
 ソート  
        リスト6.9 バブルソートによる並べ替え  245   
        リスト6.10 バブルソートによる並べ替え (マクロ使用版)  248   
        リスト6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249   
 ソート(並べ替え)  141(Coffee Break 4.2)   
  ☝     た
 大域変数  386    386(脚注9)    388    389    390   
 対応関係  
        実ひきすうと仮ひきすうの対応関係  197(図5.9)   
 大規模なプログラム  6    39   
 大事故  333   
 対処  
        エラー発生時の対処  367   
 耐震設計  5(表1.1)   
 大なり  110(表4.4)   
 代入  42    43    45    62(脚注8)    89(表3.13)    91(表3.14)    102   
        構造体のコピー  321   
        構造体の代入  321   
        整数型←浮動小数点型  102   
        注意事項  
               配列の大きさよりも長い文字列を代入することはできない  279   
        配列の値の参照と代入  228   
        浮動小数点型←整数型  102   
        ポインタを使用して文字配列への代入を行う例  272   
        文字配列への代入を行おうとして文法エラーが発生する例  272   
        文字列の代入  323(Coffee Break 9.2)   
 代入演算子  90    110(脚注2)   
        a=b; という式では、「=」が代入演算子  90(脚注45)   
        リスト3.18 型変換と代入演算子の順序  102   
 代入演算子一覧表  91(表3.14)   
 代入式  89    90   
 代入操作  83   
 代入と等号を間違えない工夫  118(Coffee Break4.1)   
 代入文  43    83    84   
 タイピング  9   
 タイプ  26   
 ダウンロードサービス  385   
 条件文  133    133(図4.11)   
 タグ  316(脚注7)   
        共用体タグ  324   
        構造体タグ  341(Coffee Break 9.6)    343   
        構造体タグの省略  317    318   
        構造体タグ名  322(脚注13)   
 多次元配列  265   
        1次元配列  265   
        2次元配列  265    266   
        3次元配列  265    266   
        多次元配列は実行が遅くなる  265   
 多次元配列は実行が遅くなる  265   
 足し算  45   
        リスト2.9 足し算のプログラム  45   
 足し算のプログラム  45   
 多重ループ  
        使用事例  
               リスト 4.21 goto 文による多重ループの強制脱出(掛け算問題)  169(リスト4.21 7~19行目)   
               リスト 6.9 バブルソートによる並べ替え  245(リスト6.9 16~27行目)   
               リスト 6.10 バブルソートによる並べ替え (マクロ使用版)  248(リスト6.10 18~29行目)   
               リスト 6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249(リスト6.11 29~40行目)   
               リスト 6.12 行列の和  252(リスト6.12 14~21, 24~31, 33~39, 42~49行目)   
               リスト 6.13 行列の積  255(リスト6.13 15~22, 25~32, 34~44, 47~54行目)   
               リスト 6.14 最も離れた席を探す  259(リスト6.14 24~39行目)   
               リスト 9.5 最も離れた席を探す (構造体配列版)  335(リスト9.5 25~39行目)   
 正しく表示されない  378(Coffee Break 10.4)   
 脱出  
        強制脱出  170   
        繰り返し制御の内側からの強制脱出  169   
        ループを一挙に脱出したい  169   
        リスト4.21 goto 文による多重ループの強制脱出(掛け算問題)  169   
 タッチパッド  9   
 タブ  61(脚注5)    117    372(Coffee Break 10.3)   
        タブキー  52   
        タブの文字コード  72   
 ダブルクォーテーション  35    272   
        \ (逆スラッシュ)  70   
        \n (改行記号)  35   
        ¥n (改行記号)  35    35(脚注1)   
        character string 文字列  74   
        エスケープシーケンス  35    70    72   
        文字列  74   
        文字列の中で引用符を表示する方法  70   
 ダブルクォート  399(付録3)   
 タブレット  8(脚注23)   
 単位  
        B バイト  11   
        bit ビット  11   
        byte バイト  11   
        GiB ギガバイト  11   
        KB キロバイト  11   
        Kbyte キロバイト  11   
        MB メガバイト  11   
        Mbyte メガバイト  11   
        MiB メガバイト  11   
        エクサ  11   
        角度の単位  139   
        ギガ  11   
        キロバイト  11   
        コンパイル単位  216    217    218   
        ゼタ  11   
        テラ  11   
        度  139   
        バイト  11   
        バイト単位  329(Coffee Break 9.3)   
        ビット  11   
        ビット単位  329(Coffee Break 9.3)   
        ペタ  11   
        メガバイト  11   
        ヨタ  11   
        ラジアン  139   
 単項演算子  115    119   
        ! (優先順位)  99(表3.17)   
        & (優先順位)  99(表3.17)    286(落とし穴8.1)   
        (cast) (優先順位)  99(表3.17)   
        * (間接演算子、優先順位)  99(表3.17)   
        + (符号、優先順位)  99(表3.17)   
        ++ (優先順位)  99(表3.17)   
        - (符号、優先順位)  99(表3.17)   
        -- (優先順位)  99(表3.17)   
        sizeof (優先順位)  99(表3.17)   
 単純if 文  120   
        単純if 文を複文に置き換える  122(図4.6)   
        プログラムの形式:単純if 文  120(図4.3)   
        もし~ならば~をする  120   
 段付け  122   
 単に通過したことを知らせるマーク  27   
 単文  121(脚注13)   
 端末ウィンドウ  21    28   
        端末ウィンドウベース  31   
 ダートマス大学  5(脚注6)   
 ターミナル  21   
        ターミナルウィンドウ  21   
 ターミネータ  261    301    359(脚注16)   
  ☝     ち
 小さい数の平方根  193(脚注17)   
 小さな整数  63(表3.2)   
 チェック  
        エラーチェック  368   
        データのチェック  230   
        戻り値をチェック  368   
        リスト2.13 入力された値が0でないかチェックするプログラム  51   
        リスト6.3 配列の代入と参照 (入力チェック組込版:23行目以降は省略)  230   
 違い  
        コンパイラの違い  90   
 置換  341(Coffee Break 9.5)    343   
 置換 (マクロ)  181(脚注8)   
 逐次処理  167   
 チップ  9   
 注意事項  
        本書ではcharは符号付きと仮定します  65(脚注13)   
 注意点  
        for 文での注意点  231   
        if( 0 = k ) ⇐ 文法的に正しくないため、エラーになる  119(Coffee Break 4.1)   
        if( 0 == k ) ⇐ 文法的には正しいため、エラーにならない  119(Coffee Break 4.1)   
        if( k = 0 ) ⇐ 文法的には正しいため、エラーにならない  119(Coffee Break 4.1)   
        sizeof charと書いてはいけない。sizeof(char)と書く  97    262(脚注23)   
        sizeof 演算子はlongを返す  97   
        改行記号は入力データの区切り記号には使用しない方が安全  117(脚注8)   
        整数型除算の注意点  74(落とし穴3.2)   
        配列の添字が0から始まっていることを忘れてはならない  255(Coffee Break 6.1)   
        ポインタを定義した時点では、そのポインタの値は設定されていない  302(図8.8)   
        メモリ中に存在する変数のアドレスは、常に一定となるわけではない  286(落とし穴8.1)   
 中央演算装置  10   
 中括弧  34    52    121    330   
        {} (ブロック)  121   
 中級者  3   
 重複の禁止  
        関数の名前の重複の禁止  196   
 著者紹介  表紙の裏   
  ☝     つ
 追加出力  
        ファイルへの追加出力  365   
        リスト10.6 データの追加  366   
 追加モード  366   
 通過した  
        単に通過したことを知らせるマーク  27   
        通過したときの状態  27   
        通過したときの変数の値  27   
 通信  
        シリアル通信  338(脚注22)   
        プロセス間通信  29   
 通信速度  338   
 通用範囲  205    217    217(図5.22)    217    218(図5.23)    219(図5.24)    293(落とし穴8.2)    345   
        auto 変数  217    217(図5.22)   
        extern 宣言  218   
        static 変数  217    218(図5.23)   
        仮ひきすうの通用範囲  216    216(図5.20)   
               仮ひきすうの通用範囲は、その関数のブロック内  216    216(図5.20)   
        関数の外側でのextern 宣言の有効範囲は、宣言の直後から、そのコンパイル単位の終わりまで  218   
        グローバル変数  217    218    219(図5.24)   
        自動変数の通用範囲  216   
        スコープ  205    216   
        静的な変数  217   
        変数の通用範囲  216   
 使い分け  
        if 文とswitch 文との使い分け  135   
 使うべきデータ型  
        floatは使うべきではない  66   
        浮動小数点を表現する場合にはdoubleを使用する  66   
 月の日数  132   
        リスト4.7 switch 文で月の日数を判断する  132   
 常にゼロを返す計算する関数(その1)  184   
 常にゼロを返す計算する関数(その2)  184   
 ツール  30    31   
  ☝     て
 ディスクの容量不足  368    371   
 ディストリビューション  31    31(脚注76)   
 ディスプレイ  28    29    376    377   
        ディスプレイに表示する  44   
        標準エラー出力はディスプレイに割り当てられている  377   
        標準出力はディスプレイに割り当てられている  377   
 ディレクティブ プログラム上に記述され、プログラム上の意味や解釈を変更する指示子  23(Coffee Break 1.3)   
        #defineディレクティブ  27   
        #includeディレクティブ  23(Coffee Break 1.3)    34    181   
        directive ディレクティブ  23(Coffee Break 1.3)   
 ディレクトリ  19(脚注53)   
 定義  286    346   
        int array[5]; と定義した時の配列データの格納領域  226(図6.4)   
        一度初期化した別の変数を用いて、他の変数を初期化する  84   
        宣言と定義の違い  346(図9.7)   
        定義された変数の配置  88(Coffee Break 3.5)   
        配列変数の定義  226   
        変数定義  42    45    81    82   
        変数の初期化はプログラムの実行時に行われる  84   
        マクロ定義  289(脚注7)   
        未定義である状態  45   
        未定義の値の引用  83(リスト3.10)   
        リスト3.9 実行文後の変数の定義例  83   
        リスト3.11 きちんとした変数定義をした例  85   
 定義 (別ファイルとして)  178(リスト 5.2 1行目)   
 定義 (main 関数の前で定義)  179(リスト 5.3 3行目)   
 定義 (一般的なプログラム構造)  183(リスト 5.4 18行目)   
 定義 (ひきすう名を省略したプロトタイプ宣言)  184(リスト 5.5 3行目)   
 定義されている関数  
        <float.h>  
               DBL_DIG マクロ  66(Coffee Break 3.2)   
               DBL_MAX マクロ  66(Coffee Break 3.2)    233   
               DBL_MIN マクロ  66(Coffee Break 3.2)   
               FLT_DIG マクロ  66(Coffee Break 3.2)   
               FLT_MAX マクロ  66(Coffee Break 3.2)   
               FLT_MIN マクロ  66(Coffee Break 3.2)   
               LDBL_DIG マクロ  66(Coffee Break 3.2)   
               LDBL_MAX マクロ  66(Coffee Break 3.2)   
               LDBL_MIN マクロ  66(Coffee Break 3.2)   
        <limits.h>  
               CHAR_MAX マクロ  66(Coffee Break 3.2)   
               CHAR_MIN マクロ  66(Coffee Break 3.2)   
               INT_MAX マクロ  66(Coffee Break 3.2)   
               INT_MIN マクロ  66(Coffee Break 3.2)   
               LLONG_MAX マクロ  66(Coffee Break 3.2)   
               LLONG_MIN マクロ  66(Coffee Break 3.2)   
               LONG_MAX マクロ  66(Coffee Break 3.2)   
               LONG_MIN マクロ  66(Coffee Break 3.2)   
               SHRT_MAX マクロ  66(Coffee Break 3.2)   
               SHRT_MIN マクロ  66(Coffee Break 3.2)   
               UCHAR_MAX マクロ  66(Coffee Break 3.2)   
               UINT_MAX マクロ  66(Coffee Break 3.2)   
               ULLONG_MAX マクロ  66(Coffee Break 3.2)   
               ULONG_MAX マクロ  66(Coffee Break 3.2)   
               USHRT_MAX マクロ  66(Coffee Break 3.2)   
        <math.h>  
               acos(x) 関数 cos-1(x)  139(表4.8)   
               asin(x) 関数 sin-1(x)  139(表4.8)   
               atan(x) 関数 tan-1(x)  139(表4.8)   
               atan2(x,y) 関数 tan-1(y/x)  139(表4.8)   
               ceil(x) 関数 x以上の最小の整数。ただし、関数値はdoubleになる  139(表4.8)   
               cos(x) 関数  139(表4.8)    150(リスト4.11 14行目)    182   
               exp(x) 関数 ex (指数関数)  139(表4.8)   
               fabs(x) 関数 |x| (絶対値)  139(表4.8)   
               floor(x) 関数 x以下の最大の整数。ただし、関数値はdoubleになる  139(表4.8)   
               fmod(x) 関数 x/yの浮動小数点の余り。関数値の符号はxと同じ  139(表4.8)   
               log(x) 関数 ln(x) (自然対数)  139(表4.8)   
               log10(x) 関数 log10(x)  139(表4.8)   
               pow(x,y) 関数 xy  139(表4.8)    145(Coffee Break 4.3)    176   
               sin(x) 関数  139(表4.8)    150(リスト4.11 13行目)    182   
               sqrt(x) 関数 \( \sqrt{x} \)  139(表4.8)    237(リスト6.7,31行目)    143    144(リスト4.9 28-29行目)    155(リスト4.13 15行目)    260   
               tan(x) 関数  139(表4.8)   
        <stddef.h>  
               ptrdiff_t 符号付き整数型 ポインタ変数の差を十分確保できる大きさ  324(脚注28)   
               size_t 符号なし整数型 sizeof 演算子が生成する大きさ  324(脚注28)   
        <stdio.h>  
               EOF マクロ  158    158(リスト4.15 6行目)    159    352    358(Coffee Break 10.1)    359    368    370    371   
               fclose 関数 ファイルを閉じる  352    358(Coffee Break 10.1)    359(Coffee Break 10.1,(脚注b))    371   
               feof(fp) 関数 ファイルの終端を判断する関数  368   
               ferror(fp) 関数 エラーの発生を判断する関数  368   
               fflush 関数 バッファに格納されているデータを書き出す  358(Coffee Break 10.1)   
               fgetc(fp) 関数 ファイルから1文字入力する関数  368   
               fgets(*s,size,*fp) 関数 ファイル(fp)から1行入力し、文字列(s)(長さsize)にセットする  273    369    370   
               FILE 構造体  350    357(Coffee Break 10.1)    358(Coffee Break 10.1)   
               FILENAME_MAX マクロ ファイル名の最大の長さ  354    354(脚注11)   
               fopen 関数 ファイルをオープンする  350    354    357(Coffee Break 10.1)    362    363    366   
               FOPEN_MAX マクロ 同時に開くことのできるファイルの最大数  362   
               fprintf 関数 printf 関数のファイル版  363    365   
               fputc(fp) 関数 ファイルに1文字出力する関数  368   
               fputs(str,fp) 関数 ファイル(fp)に文字列(str)を出力する  375   
               fscanf 関数 ファイルから入力する  351    352    359    369    370   
               getchar 関数  157    158(リスト4.15 9行目)   
               gets(str) 関数 標準入力から改行文字までの文字列を読み込み、文字列strに格納する  376   
               printf 関数  25(Coffee Break 1.4)    34    182    270   
               putchar 関数  157    158(リスト4.15 8行目)    304   
               puts(str) 関数 文字列strを標準出力へ出力する。文字列strの最後のターミネータ(0)は改行文字として出力される  376   
               scanf 関数  34    352    354(脚注11)    355   
               sscanf(str,fmt, ...) 関数 文字列strからフォーマットfmtに従ってデータを取り出す  388   
        <stdlib.h>  
               exit(s) 関数 プログラムを終了させる。sは終了コード  142(Coffee Break 4.2)    350    353   
               EXIT_FAILURE マクロ  142(Coffee Break 4.2)    351   
               EXIT_SUCCESS マクロ  142(Coffee Break 4.2)    351    353   
               malloc(size) 関数 sizeバイトのメモリ領域を割り当てる  227(脚注3)   
               qsort 関数 クイックソートを行う  338(脚注24)   
        <string.h>  
               memcmp(*s1,*s2,size) 関数 メモリ領域s1とs2をsizeバイト分比較する  322    322(脚注11)   
               strcat(*s1,*s2) 関数 文字列s1の後に文字列s2を連結する  283(Coffee Break 7.2)   
               strcat_s(*s1,size,*s2) 関数 文字列s1(長さsize)の後に文字列s2を連結する  283(Coffee Break 7.2)   
               strcmp(*s1,*s2) 関数 文字列s1と文字列s2を比較する  275    276(リスト7.8 16行目)   
               strcpy(*s1,*s2) 関数 文字列s2を文字列s1にコピーする  270    271(リスト7.3 8行目)    278    283(Coffee Break 7.2)   
               strcpy_s(*s1,size,*s2) 関数 文字列s2を文字列s1(sizeバイト)へコピーする  283(Coffee Break 7.2)   
               strlen(*s) 関数 文字列sの長さを返す  273    274(リスト 7.6 12行目)    284   
        <time.h>  
               tm 構造体  330   
 定義ミス  251(脚注19)   
 定義ミス(2次元配列の宣言)  251(脚注19)   
 定数  75    344(Coffee Break 9.7)   
        #define マクロの定義  247    252   
        0 (8進定数)  76   
        10進定数の記述ミス  76   
        16進表記  76   
        false   87   
        float型の定数 3.14159FというようにFを付ける  77(脚注29)   
        M_PI (円周率(3.141592653589 793238462643 38327950288))  未掲載   
        true  87   
        アドレスを表す定数  303   
        アボガドロ定数 (6.02214076×1023 mol-1)  77   
        円周率 (3.141592653589 793238462643 38327950288)  未掲載   
        科学定数  85(脚注36)   
        光速度 (299,792,458 m/s)  85   
        数値定数マクロ  247    251   
        整数定数  75   
        定数式  75   
        定数であるべきデータを変数に格納してしまう  85   
        浮動小数点定数  77   
        プランク定数 (6.62607015×10-34 J s)  77   
        マクロ定数  142(Coffee Break 4.2)    232    246   
        文字列定数  268    269    270    303   
        リスト3.12 定数の使用例:エネルギーの計算  86   
        列挙定数  344(Coffee Break 9.7)    345   
 定数式  75    127    127(脚注16)    129    215   
 定数値  345   
 定数の使用例:エネルギーの計算  86   
 定理証明システム  5(表1.1)   
 テキストファイル  
        テキストファイルの入力手順  
               (1)準備:ファイルのオープン(最初に一度だけ)  353   
               (2)読み込み (必要な回数実行する)  354   
               (3)後処理:ファイルのクローズ (最後に一度だけ)  354   
 適用例  
        プログラミング言語  2   
 デクリメント  148   
 デクリメント演算子  148    149   
        --i の値は、iをデクリメントしたあとの値になる  148   
        i-- の値は、iをデクリメントする前の値になる  148   
 デコード  13    15   
 手順  
        2の平方根を求める  193(図5.1)   
        余りの計算  
               リスト3.14 %を用いない余りの計算  95   
        関数の呼び出し手順  186    189   
        和を求める手順  147   
 デスクトップPC  8   
 テスト  28    41   
 でない(NOT)  114   
 デバッガ  3    26    345   
        debugger デバッガ  26   
 デバッグ  4    26    28    38    345    391    395   
        printf 文で実行が通過したことを示す  190   
        関数のデバッグ  190   
        実行はできるが結果が正しくない  41   
        数学関数の多くは、計算できない値を誤って指定してもエラーとして実行を停止しない  143(脚注31)   
        早期発見  397(Coffee Break 11.1)   
        デバッグ用にprintf 関数を入れると暴走しないが、その文を取ると暴走する  235(落とし穴6.1)   
        デバッグライト  28   
        プログラムの実行が途中で停止してしまう  41   
        プログラムの修正数が多いとバグの発生率が高まる  247   
        呼び出し部分をコメントアウト  395   
        リスト5.10 printf を使ったデバッグの例  190   
 デバッグ手法  3   
        debug write デバッグライト  26   
        debugger デバッガ  26   
        机上デバッグ  26   
        実行を一時的に停止させる  26   
        スナップショット  26(脚注66)   
        ソースコードの読み直し  26   
        デバッガ  26   
        デバッグライト  26    27   
               単に通過したことを知らせるマーク  27   
               通過したときの状態  27   
               通過したときの変数の値  27   
        デバッグを効率よく進めるために  
               プログラミングに慣れないうちは、入力データは常に表示して確認する  113(脚注5)   
        トレース  26   
        トレース機能  26   
        ブレークポイント  26   
 デバッグ情報  38   
 デバッグライト  26    27    28   
        debug write デバッグライト  26   
        単に通過したことを知らせるマーク  27   
        通過したときの状態  27   
        通過したときの変数の値  27   
 デバッグを効率よく進めるために  
        プログラミングに慣れないうちは、入力データは常に表示して確認する  113(脚注5)   
 デベロッパ  31   
 テラ  11   
 展開  
        ファイルの展開  182(図5.5)   
 電源  17   
 テンプレート  316    318   
        構造体テンプレート  316    318   
 データ  12   
        2つのデータの交換  240   
        ある高校の学生の身長  236(表6.2)   
        インプットデータ  385   
        気象データ  380   
        符号  64   
        符号が付いたデータ  64   
        符号が付かないデータ  64   
 データ形式  380   
 データ欠損  397(Coffee Break 11.1)   
 データ信号  13   
 データ設計  384   
 データチェック  
        バリデーション  397(Coffee Break 11.1)   
 データ取り出し  
        リスト11.2 データ取り出し関数の実装  389   
 データ入力  348   
 データの準備  385   
 データの精度  
        言語文法によってデータの精度が正確に規定されていない理由  67(Coffee Break 3.3)   
 データのチェック  230   
 データの入力  
        プログラミングに慣れないうちは、入力データは常に表示して確認する  113(脚注5)   
 データの表現精度  67(Coffee Break 3.3)   
 データ表現  
        3ビットのデータ表現(符号付きと符号なし)  68(Coffee Break 3.4(表3.8))   
        3ビットのデータ表現(符号なし)  68(Coffee Break 3.4(表3.7))   
 データ部  286    287(図8.1)   
 データファイル  350   
        リスト10.3 データの集計 (データファイル名の入力)  356   
        リスト10.4 データの集計 (データの終わりを判定する)  360   
        リスト10.5 データファイルへの出力  364   
        リスト10.6 データの追加  366   
 データ領域  235(落とし穴6.1)   
        メモリ破壊はデータ領域を破壊するだけでなく、プログラム領域も破壊する  235(落とし穴6.1)   
 データレジスタ  13   
  ☝     と
 度  139    140   
 度→ラジアンへの変換  139   
 等価  
        == (関係演算子、優先順位)  99(表3.17)   
 同期回路  15   
 統計処理  5(表1.1)   
 統計量  
        標準偏差  235   
        分散  235   
        平均値  235   
 等号  110(表4.4)   
 等号 (==)  48    113   
 統合開発環境  25    30    38   
        Xcode  31   
 動作  
        コンピュータはプログラムに書かれたとおりに動作する  26   
        プログラムの動作が保証されない  367(脚注21)   
 動作環境  
        プログラムの動作環境  27   
 動詞  384   
 動的  
        動的に配列を確保する方法  227(脚注3)   
        配列の要素数には変数を指定することもできる⇒動的に配列のサイズを変更できる  249   
 動的なプログラミング  57   
 ドット演算子  99(表3.17)   
 どのようにつくるのか考える  20   
 ドライバ  5(表1.1)   
 トラックパッド  9   
 トラブル  
        ミスのあるif 文の動作  123(落とし穴4.2)   
 トランジスタ  14   
 トレース  26   
        トレース機能  26   
  ☝     な
 内部バス  14   
 内部表現  
        整数の内部表現  68(Coffee Break 3.4)   
        浮動小数点の内部表現  65(図3.3)   
 長い整数型  64(表3.3)   
 長さ  
        文字列の長さ  273   
        リスト7.6 文字列の長さを知るプログラム (標準関数を使用)  274   
        リスト7.7 文字列の長さを知るプログラム  274   
 流れ  107   
        コンパイルの流れ  24(図1.11)   
        制御の流れ  106   
        プログラミングの流れ  34   
        プログラムの流れを変える  48    54   
 流れ図  107   
 なぜ  
        なぜ2進数は少数を正確に表すことはできないのか  79(落とし穴3.3)   
        なぜコンパイルとリンクという工程が分かれているか  39   
 夏日  380   
 「夏日カウント」プログラム  380   
 名札  167   
 名札付き文  168   
        goto 文  168   
        ラベル  168   
 名前  
        関数が異なれば同じ名前の変数でも異なる変数として扱われる  192   
        関数の名前の重複の禁止  196   
        関数はその役割に応じて適切な名前を付けることが重要  384   
        不明な名前  317    318    343   
 並べ替え  141(Coffee Break 4.2)    239   
        大きい順に並び替える  245   
        小さい順に並び替える  245   
        バブルソート  239   
        リスト6.9 バブルソートによる並べ替え  245   
        リスト6.10 バブルソートによる並べ替え (マクロ使用版)  248   
        リスト6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249   
  ☝     に
 二重ループ  
        使用事例  
               リスト 4.21 goto 文による多重ループの強制脱出(掛け算問題)  169(リスト4.21 7~19行目)   
               リスト 6.9 バブルソートによる並べ替え  245(リスト6.9 16~27行目)   
               リスト 6.10 バブルソートによる並べ替え (マクロ使用版)  248(リスト6.10 18~29行目)   
               リスト 6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249(リスト6.11 29~40行目)   
               リスト 6.12 行列の和  252(リスト6.12 14~21, 24~31, 33~39, 42~49行目)   
               リスト 6.13 行列の積  255(リスト6.13 15~22, 25~32, 47~5行目)   
               リスト 6.14 最も離れた席を探す  259(リスト6.14 24~39行目)   
               リスト 9.5 最も離れた席を探す (構造体配列版)  335(リスト9.5 25~39行目)   
 日数  132   
        リスト4.7 switch 文で月の日数を判断する  132   
 日本語  283   
        カタカナ  283   
        漢字  283   
        ひらがな  283   
 日本語文字列  283   
 日本語を含んだファイル名  361(Coffee Break 10.2)   
 入出力  29    56    375   
        エラー処理  367   
        エラーチェック  368   
        エラー発生時の対処  367   
        エラーを未然に防ぐ  367   
        オープンしたファイルは必ずクローズしなければならない  372   
        標準入出力  27    28    43   
        標準入出力ライブラリ  28   
        ファイル入出力  43   
        フラッシュ  358(Coffee Break 10.1)   
        プログラムの入出力  27   
        戻り値をチェック  368   
        リスト10.10 ファイル入出力サンプル  375   
        リスト10.11 画面入出力サンプル  376   
 入出力関数  176   
 入出力動作の基本  160(Coffee Break 4.5)   
 入出力ファイル  375   
 入力データ  
        プログラミングに慣れないうちは、入力データは常に表示して確認する  113(脚注5)   
 入力  30(図1.14)   
        キーボード  348   
        キーボードからの入力  43   
        キーボード入力  44   
        混在入力  115(落し穴4.1)   
        データ入力  348   
        入出力  29    56   
        標準入出力  27    28    43   
        標準入出力ライブラリ  28   
        標準入力  27    28    29    157    160(Coffee Break 4.5)    377   
        標準入力はキーボードに割り当てられている  377   
        ファイルからの入力  351   
        ファイル入出力  43   
        ファイル名を指定した入力  354   
        複数のファイルからの入力  362   
        プログラムの入出力  27   
        文字の入力  160(Coffee Break 4.5)   
        使用事例  
               リスト 2.8 キーボードからの入力  43(リスト2.8 7行目)   
               リスト 2.11 2つの整数が割りきれる場合答えを表示するプログラム  49(リスト2.11 9, 11行目)   
               リスト 2.12 割りきれない場合の処理を追加したプログラム  50(リスト2.12 9, 11行目)   
               リスト 2.13 入力された値が0でないかチェックするプログラム  51(リスト2.13 9, 11行目)   
               リスト 3.5 文字の変換  73(リスト3.5 10行目)   
               リスト 4.2 文字の比較  112(リスト4.2 8行目)   
               リスト 4.3 ANDとORの使用例  112(リスト4.3 9行目)   
               リスト 4.4 偶数か奇数かの判断  125(リスト4.4 8行目)   
               リスト 4.5 入賞者の判別  128(リスト4.5 8行目)   
               リスト 4.6 break 文なしswitch 文  131(リスト4.6 8行目)   
               リスト 4.7 switch 文で月の日数を判断する  132(リスト4.7 8行目)   
               リスト 4.8 半径1の円周上の座標を求める  139(リスト4.8 11行目)   
               リスト 4.9 2次方程式の実数解を求める  143(リスト4.9 9行目)   
               リスト 4.12 数当てゲーム  152(リスト4.12 13行目)   
               リスト 4.15 入力した文字を出力する(その1)  158(リスト4.15 5行目)   
               リスト 4.16 入力した文字を出力する(その2)  159(リスト4.16 7行目)   
               リスト 4.18 厄年ではない年齢を表示する  162(リスト4.18 8行目)   
               リスト 4.21 goto 文による多重ループの強制脱出(掛け算問題)  169(リスト4.21 13行目)   
               リスト 4.22 フラグを使った強制脱出(掛け算問題)  170(リスト4.22 16行目)   
               リスト 5.13 max 関数  196(リスト5.13 10行目)   
               リスト 5.14 誤りのあるmax 関数の例  198(リスト5.14 12, 16行目)   
               リスト 5.15 正しいmax 関数の例  198(リスト5.15 12, 16行目)   
               リスト 5.16 総称選択を用いたmax 関数  200(リスト5.16 14, 18行目)   
               リスト 6.1 配列を使わないプログラム例:複雑で長くなる  224(リスト6.1 13行目)   
               リスト 6.2 配列を使ったプログラム  225(リスト6.2 14行目)   
               リスト 6.3 配列の代入と参照 (入力チェック組込版:23行目以降は省略)  230(リスト6.3 17行目)   
               リスト 6.7 平均値・分散・標準偏差 (その1)  236(リスト6.7 16行目)   
               リスト 6.8 平均値・分散・標準偏差 (その2)  238(リスト6.8 14行目)   
               リスト 6.9 バブルソートによる並べ替え  245(リスト6.9 13行目)   
               リスト 6.10 バブルソートによる並べ替え (マクロ使用版)  248(リスト6.10 15行目)   
               リスト 6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249(リスト6.11 14, 26行目)   
               リスト 6.12 行列の和  252(リスト6.12 19, 29行目)   
               リスト 6.13 行列の積  255(リスト6.13 20, 30行目)   
               リスト 6.14 最も離れた席を探す  259(リスト6.14 21行目)   
               リスト 7.6 文字列の長さを知るプログラム (標準関数を使用)  274(リスト7.6 10行目)   
               リスト 7.7 文字列の長さを知るプログラム  274(リスト7.7 21行目)   
               リスト 7.8 文字列の比較を行うプログラム (標準関数を使用)  275(リスト7.8 11, 14行目)   
               リスト 7.9 文字列の比較を行うプログラム  276(リスト7.9 30, 33行目)   
               リスト 9.2 共用体の利用 (その1)  325(リスト9.2 13行目)   
               リスト 9.3 共用体の利用 (その2)  327(リスト9.3 12, 14行目)   
               リスト 9.5 最も離れた席を探す (構造体配列版)  335(リスト9.5 22行目)   
               リスト 10.1 データの集計 (手で入力作業をする版)  348(リスト10.1 12行目)   
               リスト 10.2 データの集計 (入力ファイルからデータを読み込む)  352(リスト10.2 19行目)   
               リスト 10.3 データの集計 (データファイル名の入力)  356(リスト10.3 23行目)   
               リスト 10.4 データの集計 (データの終わりを判定する)  360(リスト10.4 22行目)   
               リスト 10.5 データファイルへの出力  364(リスト10.5 23行目)   
               リスト 10.7 fgets 関数を使用した例  370(リスト10.7 25行目)   
               リスト 10.10 ファイル入出力サンプル  375(リスト10.10 24行目)   
               リスト 10.11 画面入出力サンプル  376(リスト10.11 5行目)   
               リスト 10.12 stderr に置き換えたファイル入出力サンプル  377(リスト10.12 24行目)   
               リスト 11.1 main 関数の実装  387(リスト11.1 45行目)   
               リスト 11.2 データ取り出し関数の実装  389(リスト11.2 7, 10行目)   
               リスト 11.5 夏日判定プログラム  391(リスト11.5 75, 111, 114行目)   
 入力された値  
        リスト2.13 入力された値が0でないかチェックするプログラム  51   
 入力時  230   
 入力チェック  
        リスト6.3 配列の代入と参照 (入力チェック組込版:23行目以降は省略)  230   
 入力値と変数の対応関係  111(図4.3)   
 入力手順  
        テキストファイルの入力手順  
               (1)準備:ファイルのオープン(最初に一度だけ)  353   
               (2)読み込み (必要な回数実行する)  354   
               (3)後処理:ファイルのクローズ (最後に一度だけ)  354   
 入力データ  
        改行記号は入力データの区切り記号には使用しない方が安全  117(脚注8)   
        入力データの終わりの判定  359   
        リスト10.4 データの集計 (データの終わりを判定する)  360   
 入力データの区切り  116   
 入力ファイル  356    395   
 入力待ち  160(Coffee Break 4.5)   
 入力文字  
        リスト4.15 入力した文字を出力する(その1)  158   
 入力例  112(図4.4)   
 入力レコード構造体  389   
 ニュートン法  192   
 人間  
        人間が正しく理解する  52   
        人間でも解釈しやすいプログラム  52   
 ニーモニック  16(脚注44)   
  ☝     ね
 ネスト  122    133(脚注20)    136    137    143    165    169    170    322    323   
        if 文のネスト  136   
        構造体のネスト  322   
        初期化  
               ネストされた構造体の初期化  330   
        ネストされたif 文  137(図4.12)   
 ネストされたif 文  137(図4.12)   
 ネットワーク装置  10   
 年代  
        1940年代の初期  4   
        1947年  4   
        1970年代初期  7   
        1983年  7   
        1988年末  7   
        1998年  11   
        1999年  64(脚注10)   
        2020年  8   
        2020年6月  8(脚注21)   
        2020年春  31   
  ☝     は
 場合分け  135   
 場合分けの処理  126   
 倍精度浮動小数点数  63(表3.2)   
 媒体  19   
 排他的OR  91(表3.14)   
 排他的論理和  91(表3.14)   
        排他的論理和を計算する  91(表3.14)   
 配置  
        定義された変数の配置  88(Coffee Break 3.5)   
 配置アドレス  
        リスト8.1 変数 x の配置アドレスを表示する  289   
        リスト8.2 変数 x の配置アドレスを、ポインタを用いて表示する  290   
 バイト  11    286   
        1バイト  268   
        奇数バイト  319(Coffee Break 9.1)(脚注a)   
        複数バイト  283   
 バイト取得  
        sizeof 演算子  97   
 バイト数  
        float 浮動小数点数  98   
 バイト単位  329(Coffee Break 9.3)   
 ハイバネーション機能  10   
 パイプ  18    19    29   
        パイプの役割  30(図1.14)   
 パイプの役割  30(図1.14)   
 配列  88(Coffee Break 3.5)    222    223    225(脚注1)    227    268    269    298    298(図8.6)    302    318(Coffee Break 9.1)   
        1次元配列  250   
        1つの配列を構成する要素は、すべて同じ型である必要がある  227   
        2次元配列  250    257    262   
        C99以前のコンパイラでは要素数に変数を指定することはできない  227(脚注2)   
        char 型の配列とdouble 型の配列  227(図6.5)   
        for 文での注意点  231   
        int array[5]; と定義した時の配列データの格納領域  226(図6.4)   
        多くのデータを簡潔に表現できる  223   
        確保する容量  
               配列では、確保する容量が多くなる  252   
        最後の添字は「配列の大きさ-1」である  227   
        初期化  260    271   
        添字  225(脚注1)    227   
        存在しないデータにアクセスする  225(脚注1)   
        注意事項  
               配列の大きさよりも長い文字列を代入することはできない  279   
        注意点  
               配列の添字が0から始まっていることを忘れてはならない  255(Coffee Break 6.1)   
        定義ミス  251(脚注19)   
        動的に配列を確保する方法  227(脚注3)   
        配列による表現  223(図6.3)   
        配列の値の参照と代入  228   
        配列のコピーは、要素ごとに行う  229   
        配列のサイズ  
               配列の要素数には変数を指定することもできる⇒動的に配列のサイズを変更できる  249   
        配列の使用時の注意  
               添字の指定を間違えて、配列の定義以外のメモリにアクセスしてもエラーが出ない  229   
        配列の先頭アドレスを関数に渡す方法  310   
        配列の先頭の位置は1番目ではなく、0番目である  226    227   
        配列の使い方  226   
        配列の範囲外のアクセスエラー  229(脚注8)   
        配列の要素  227   
        配列の要素数の定義に変数や式を指定することもできる  227   
        配列の要素数は、「結果が整数となる式」でなければならない  227   
        配列は、それを確保するための領域が必要になる  238   
        配列変数の定義  226   
        配列を用いる場面  223   
        変数が連続している  223   
        変数の位置を指定する  223   
        ポインタ  298    298(図8.6)   
               配列は式の中ではポインタである  299(脚注21)   
               ポインタは配列の要素を渡し歩くようなイメージ  299(図8.7)   
        ポインタと配列の相違  302   
        メモリ上での配列の並び  264(Coffee Break 6.2)   
        文字配列  268    269   
        文字列定数  
               配列で初期化する  303   
               ポインタで初期化する  303   
        リスト6.1 配列を使わないプログラム例:複雑で長くなる  224   
        リスト6.2 配列を使ったプログラム  225   
        リスト6.3 配列の代入と参照 (入力チェック組込版:23行目以降は省略)  230   
        リスト6.4 配列の代入と参照 (全要素出力版)  230   
        リスト6.5 配列とfor 文を用いた体重の最大値と最小値の検出  231   
        リスト6.6 配列を使用しない体重の最大値と最小値の検出  233   
        リスト8.10 文字列の内容を表示するプログラム (配列版)  304   
        連続したメモリ  88(Coffee Break 3.5)   
 配列の使用時の注意  
        添字の指定を間違えて、配列の定義以外のメモリにアクセスしてもエラーが出ない  229   
 配列の添字  251   
 配列の範囲を超えたアクセス  234(落とし穴6.1)   
 配列の要素数  246   
 配列名  
        配列名とポインタの操作  302(表8.1)   
        配列名は、式の中に書かれた場合、その0番目要素の先頭アドレスになる  298   
 破壊  
        システム自身を致命的に破壊する  293   
        プログラムの暴走  235(落とし穴6.1)   
        メモリの内容が、意図しない書き込みにより意味のない値に変わってしまうこと  234(落とし穴6.1)   
        メモリ破壊  234(落とし穴6.1)    255(Coffee Break 6.1)    279    280    281(図7.2)    283(Coffee Break 7.2)   
        メモリ破壊はさらに大きな領域の破壊を引き起こす可能性がある  234(落とし穴6.1)   
        メモリ破壊はデータ領域を破壊するだけでなく、プログラム領域も破壊する  235(落とし穴6.1)   
 バグ  3    4    26    293(落とし穴8.2)   
        正しく表示されない  378(Coffee Break 10.4)   
        バグの原因  28   
        プログラムの修正数が多いとバグの発生率が高まる  247   
        虫  3    4   
 バグ回避  
        10進定数の記述ミス  76   
 バグ回避テクニック  
        除算では分母を括弧でくくる  74(落とし穴3.2)   
        整数型除算の注意点  74(落とし穴3.2)   
 バグの原因  28   
 バグの例  
        printf 関数  71(落とし穴3.1)   
 走らせる  26   
 バス  12    14   
        外部バス  14   
        内部バス  14   
 派生型  290   
 パソコン  7   
 パック  319(Coffee Break 9.1)(脚注b)   
        パックされた構造体  319(Coffee Break 9.1)   
 バックスペース  399(付録3)   
 発生  
        予測不能な事態が発生すること  367(脚注21)   
 バッチ処理  141(Coffee Break 4.2)   
 バッチファイル  142(Coffee Break 4.2)   
 パッド  
        スライドパッド  9   
        タッチパッド  9   
        トラックパッド  9   
 バッファリング  160(Coffee Break 4.5)   
 バッファオーバーフロー  279   
        メモリ破壊  279   
 バブルソート  239   
        バブルソートの手順  240    242    243(図6.15)   
        リスト6.9 バブルソートによる並べ替え  245   
        リスト6.10 バブルソートによる並べ替え (マクロ使用版)  248   
        リスト6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249   
 場面  
        配列を用いる場面  223   
 パラメータ  355   
        コマンドラインひきすう  355   
 パラメータありmain 関数  355   
 パラメータなしmain 関数  355   
 パリティ  338   
 バリデーション  397(Coffee Break 11.1)   
 範囲  
        表現できる浮動小数点型の値の範囲  65(表3.5)   
 範囲外  
        配列の範囲外のアクセスエラー  229(脚注8)   
 半角スペース  181(脚注9)   
 ハンガリアン記法  62(Coffee Break 3.1)   
 判断  
        偶数か奇数かを判断  124   
        リスト4.4 偶数か奇数かの判断  125   
 番地  14    286    288(図8.2)   
 判定  
        0あるいは0.0、NULLならば偽、それいがいは真  114(脚注7)   
        if( 0 )は常に偽  113   
        if( 1 )は常に真  113   
        if( c2 >= 'A' && c2 <= 'Z' )(文字コードの判定)  118   
        入力データの終わりの判定  359   
        文字  113   
        文字の判定  112   
        リスト11.5 夏日判定プログラム  391   
 反転  
        ビット反転  Coffee Break 3.4)   
 半導体  9   
 反応が何もない状態  26   
 判別式  142    143   
 汎用性  6   
 パーソナルコンピュータ  7(脚注19)   
 ハードウェア制御  329(Coffee Break 9.3)   
 ハードウェアの問題  368   
 ハードディスク  10    19    286    376   
 ハーバード大学  4   
  ☝     ひ
 被演算子  111    148(脚注35)   
 比較  111   
        < (関係演算子、優先順位)  99(表3.17)   
        <= (関係演算子、優先順位)  99(表3.17)   
        > (関係演算子、優先順位)  99(表3.17)   
        >= (関係演算子、優先順位)  99(表3.17)   
        大きい  89(表3.13)   
        肯定  89(表3.13)   
        否定演算子  89(表3.13)   
        文字の比較  112   
        文字列の比較  275   
        リスト4.2 文字の比較  112   
        リスト7.8 文字列の比較を行うプログラム (標準関数を使用)  275   
        リスト7.9 文字列の比較を行うプログラム  276   
 東アジアの諸文字  284(表7.1)   
 光回線  10   
 光ディスク  10   
 ひきすう  139    177    194    355   
        アドレス渡し  309   
        仮ひきすう  178    183    189    196    206    207    208    210   
        仮ひきすうの通用範囲  216    216(図5.20)   
        関数の仮ひきすうと実ひきすうのベース型が異なっています  183   
        関数の宣言の中での仮ひきすうの配列は、ポインタと同じ  310   
        関数のひきすう  
               関数のひきすうの型  183   
               関数のひきすうを省略すると、void型が指定されたことになる  184(脚注13)   
               リスト5.12 関数のひきすうと個数と型の一致  195   
        関数のひきすうの値を更新する  306   
        関数のひきすうの型  183   
        コマンドラインひきすう  355   
        参照渡し  309   
        実ひきすう  178    183    188    189    190    196    206   
        実ひきすうの値を仮ひきすうにコピーする  178    188    189   
        第1ひきすう  177(脚注5)    178    188(図5.7)   
        第2ひきすう  177(脚注5)    178    188(図5.7)   
        配列の先頭アドレスを関数に渡す方法  310   
        ひきすうがない  195   
        ひきすうの個数と型の一致  195   
        ひきすうの処理  188   
        ひきすうの引き渡し  307(図8.10)   
        ひきすうを書かない  
               int zero(void)  184   
        ポインタのひきすうとしての使い方  306   
 ピクセル  8   
 ビジネスアプリ  5(表1.1)   
 左から右  92(脚注49)    99   
 左にシフトする  91(表3.14)   
 ビット  11   
        ~ (ビット演算子)  未掲載   
        16ビットコンピュータ  67(Coffee Break 3.3)   
        32ビットコンピュータ  67(Coffee Break 3.3)   
        64ビットコンピュータ  67(Coffee Break 3.3)   
        binary digit  11   
        最上位ビット  64   
        最上位ビットを符号として扱うかどうか  64   
 ビット演算子  
        & (ビット演算子(ビットAND))  99(表3.17)   
        &= (ビットANDの結果を代入する)  91(表3.14)   
        ^ (ビット演算子(排他的OR))  91(表3.14)   
        ^= (排他的ORの結果を代入する)  91(表3.14)   
        | (ビット演算子(ビットOR))  91(表3.14)   
        |= (ビットORの結果を代入する)  91(表3.14)   
 ビット単位  329(Coffee Break 9.3)   
 ビットパターン  68(Coffee Break 3.4)    76   
 ビット反転  Coffee Break 3.4)   
 ビットフィールド  329(Coffee Break 9.3)   
 日付  330    383   
 否定演算子  89(表3.13)    114    115(表4.5)    119   
        ! (否定演算子)  119    120   
 否定演算子の真理値表  119(表4.7)   
 非同期回路  15(脚注41)   
 非等号  
        != (非等号、優先順位)  99(表3.17)   
 ひとまとめ  
        関連性のある複数の項目をひとまとめにするのが構造体の役割  315   
 表  250   
        2次元配列  250   
 表記  
        16進表記  76   
 表記法  
        整数の10進数以外の表記法  76   
 表計算ソフト  350    385   
 表現  
        3次元座標の表現  266   
        3ビットのデータ表現(符号付きと符号なし)  68(Coffee Break 3.4(表3.8))   
        3ビットのデータ表現(符号なし)  68(Coffee Break 3.4(表3.7))   
        正規表現  389(脚注10)   
        整数の内部表現  68(Coffee Break 3.4)   
        使うべきデータ型  
               浮動小数点を表現する場合にはdoubleを使用する  66   
        文字の表現  69   
        文字列の表現  268   
 表現できる浮動小数点型の値の範囲  65(表3.5)   
 表示  
        ディスプレイに表示する  44   
        プログラミングに慣れないうちは、入力データは常に表示して確認する  113(脚注5)   
        メッセージを表示する  34   
        文字コード  113   
        文字列の中で引用符を表示する方法  70   
        リスト3.2 文字の表示  69   
        リスト3.3 引用文字の表示  70   
        リスト3.6 浮動小数点の表示  77   
        リスト7.1 文字 A を表示する  268   
        リスト8.1 変数 x の配置アドレスを表示する  289   
        リスト8.2 変数 x の配置アドレスを、ポインタを用いて表示する  290   
        リスト8.10 文字列の内容を表示するプログラム (配列版)  304   
        リスト8.11 文字列の内容を表示するプログラム (ポインタ版)  305   
 表示して確認  
        プログラミングに慣れないうちは、入力データは常に表示して確認する  113(脚注5)   
 標準インクルードファイル  138(脚注25)   
 標準エラー出力  27    28    30    377   
        stderr 標準エラー出力に対するストリームポインタ  377   
 標準関数  157    176    182    273   
        リスト7.3 配列に文字配列に格納する (標準関数を利用)  271   
        リスト7.6 文字列の長さを知るプログラム (標準関数を使用)  274   
        リスト7.8 文字列の比較を行うプログラム (標準関数を使用)  275   
        リスト7.10 文字列のコピーを行うプログラム (標準関数を使用)  278   
        リスト7.12 文字列の連結を行うプログラム (標準関数を使用)  280   
 標準言語案  7   
 標準出力  27    28    29    157    377   
        stdout 標準出力に対するストリームポインタ  377   
 標準入出力  27    28    43   
        stderr 標準エラー出力に対するストリームポインタ  377   
        stdin 標準入力に対するストリームポインタ  377   
        stdout 標準出力に対するストリームポインタ  377   
        標準エラー出力  377   
        標準エラー出力はディスプレイに割り当てられている  377   
        標準出力  377   
        標準出力はディスプレイに割り当てられている  377   
        標準入力  377   
        標準入力はキーボードに割り当てられている  377   
 標準入出力ライブラリ  25(Coffee Break 1.4)    28   
 標準入力  27    28    29    157    160(Coffee Break 4.5)    377   
        stdin 標準入力に対するストリームポインタ  377   
        標準入力から1行入力  274   
 標準ヘッダファイル  138    182   
        <stdio.h>  23(Coffee Break 1.3)   
 標準偏差  235    236   
        標準偏差(s)\( \displaystyle = \sqrt{v}\)  236   
        リスト6.7 平均値・分散・標準偏差 (その1)  236   
        リスト6.8 平均値・分散・標準偏差 (その2)  238   
 標準ライブラリ  3    39   
        tm 構造体  330   
 ひらがな  283    284(表7.1)   
 ピリオド  320    323    330    334    336    337   
 ビルド  38   
 品質  397(Coffee Break 11.1)   
  ☝     ふ
 部  
        コード部  286    287(図8.1)   
        データ部  286    287(図8.1)   
 ファイル  19    27    28    181    286(落とし穴8.1)    349    351    358(Coffee Break 10.1)    372(Coffee Break 10.3)    378(Coffee Break 10.4)   
        .c (ソースファイルの拡張子)  182   
        .c (ヘッダファイルの拡張子)  182   
        CSV形式  381    381(脚注2)   
        CSVふぁいる  396   
        exeファイル 本書ではWindowsの実行可能ファイルという意味で使います  31(脚注75)   
        インクルードファイル  182   
        エラー処理  367   
        エラーチェック  368   
        エラー発生時の対処  367   
        エラーを未然に防ぐ  367   
        オブジェクトファイル  24(Coffee Break 1.3)    38    39   
        オープン  350    362    363   
        オープンしたファイルは必ずクローズしなければならない  372   
        階層的にファイルを管理  19   
        区分  19   
        クローズ  352   
        コンマ区切りのファイル  381   
        実行可能ファイル  31    31(脚注75)   
        実行ファイル  39   
        出力するファイルを指定するコマンド  38   
        出力ファイル  395   
        セクタ  19(脚注55)   
        ソースファイル  181    182   
        ディレクトリ  19(脚注53)   
        テキストファイルの入力手順  
               (1)準備:ファイルのオープン(最初に一度だけ)  353   
               (2)読み込み (必要な回数実行する)  354   
               (3)後処理:ファイルのクローズ (最後に一度だけ)  354   
        データファイル  350   
        入出力ファイル  375   
        入力ファイル  356    395   
        必要性  
               なぜファイルをオープンする必要があるのか?  357(Coffee Break 10.1)   
               なぜファイルをクローズする必要があるのか?  358(Coffee Break 10.1)   
               ファイルのオープン  357(Coffee Break 10.1)   
               ファイルのクローズ  357(Coffee Break 10.1)   
        標準ヘッダファイル  182   
        ファイルからの入力  351   
        ファイルシステム  19   
        ファイル操作関数  368   
        ファイルのオープンに失敗する原因  362(脚注18)   
        ファイルの管理  19   
        ファイルの展開  182(図5.5)   
        ファイルへの出力  362   
        ファイルへの出力手順  
               (1) ファイルをオープンする (最初に一度だけ)  363   
               (2) ファイルにデータを出力する (必要回数)  363   
               (3) ファイルをクローズする (最後に一度だけ)  363   
        ファイルへの追加出力  365   
        ファイル名を指定した入力  354   
        ファイルを閉じる  352   
        ファイルを開く  350(脚注4)   
        フォルダ  19   
        複数のファイルからの入力  362   
        フラッシュ  358(Coffee Break 10.1)   
        ヘッダファイル  180(図5.4)    182    182(脚注10)   
        戻り値をチェック  368   
        リスト10.2 データの集計 (入力ファイルからデータを読み込む)  352   
        リスト10.3 データの集計 (データファイル名の入力)  356   
        リスト10.4 データの集計 (データの終わりを判定する)  360   
        リスト10.5 データファイルへの出力  364   
        リスト10.6 データの追加  366   
        リスト10.10 ファイル入出力サンプル  375   
 ファイルからの入力  351   
 ファイルシステム  19    360(Coffee Break 10.2)    361(Coffee Break 10.2, (脚注a))   
        exFAT ファイルシステム Windows Vista SP1 以降で採用されたファイルシステム  361(Coffee Break 10.2)   
        ext4 ファイルシステム Linux で採用されているファイルシステム  361(Coffee Break 10.2)   
        FAT ファイルシステム MS-DOSで採用されたファイルシステム  361(Coffee Break 10.2)   
        FAT16 ファイルシステム Windows95 以降で採用されたファイルシステム  361(Coffee Break 10.2)   
        FAT32 ファイルシステム Windows95 以降で採用されたファイルシステム  361(Coffee Break 10.2)   
        NTFS ファイルシステム Windows 2000 以降で採用されたファイルシステム  361(Coffee Break 10.2)   
 ファイル処理  171   
 ファイル操作関数  368   
        fclose 関数 ファイルを閉じる  368    371   
        feof(fp) 関数 ファイルの終端を判断する関数  368   
        ferror(fp) 関数 エラーの発生を判断する関数  368   
        fgetc(fp) 関数 ファイルから1文字入力する関数  368   
        fgets(*s,size,*fp) 関数 ファイル(fp)から1行入力し、文字列(s)(長さsize)にセットする  368   
        fopen 関数 ファイルをオープンする  368   
        fprintf 関数 printf 関数のファイル版  368   
        fputc(fp) 関数 ファイルに1文字出力する関数  368   
        fscanf 関数 ファイルから入力する  369   
 ファイル入出力  43    195(脚注18)   
        エラー処理  367   
        エラー発生時の対処  367   
        エラーを未然に防ぐ  367   
        リスト10.10 ファイル入出力サンプル  375   
        リスト10.12 stderr に置き換えたファイル入出力サンプル  377   
 ファイルの管理  19   
 ファイルのコピー  
        リスト10.10 ファイル入出力サンプル  375   
 ファイルへの出力  362   
 ファイルへの出力手順  
        (1) ファイルをオープンする (最初に一度だけ)  363   
        (2) ファイルにデータを出力する (必要回数)  363   
        (3) ファイルをクローズする (最後に一度だけ)  363   
 ファイルへの追加出力  365   
 ファイルポインタ  350(脚注6)   
 ファイル名  181(脚注9)    182    354    360(Coffee Break 10.2)   
        日本語を含んだファイル名  361(Coffee Break 10.2)   
        命名規則  360(Coffee Break 10.2)   
 ファイルを閉じる  352   
 ファン  10   
 フィンランド  7(脚注20)   
 フィールド  330    331   
 フェッチ  13(脚注33)   
 フォルダ  19   
 フォン・ノイマン型アーキテクチャ  12   
 フォーマット  352    363    385   
 フォーマット指定子  
        具体例については、「% (パーセント)」の「▶フォーマット指定子」を見られたい      
 フォーマット指定子の例  
        %e (double に対する)  79   
        %f (printf:float、double に対する、scanf:float に対する)  78    101(リスト3.17 10行目)    102(リスト3.18 9行目)   
        %g (double に対する)  79   
        %数値.数値e (double に対する)  79   
        %数値.数値f (double に対する)  78   
        %数値f (double に対する)  78   
 複合リテラル  331   
 複雑なプログラム  106   
 副作用完了点  90(脚注43)   
 複写  
        文字列のコピー  278   
        リスト7.13 文字列の複写 (str_cpy 関数)と連結 (str_cat 関数)を行うプログラム  281   
 複数行  
        リスト2.3 コメントの書き方(その1、複数行にわたって書く)  36   
 複数行のコメント  36   
 複数の条件  133   
 複数のソースファイル  24(Coffee Break 1.3)   
 複数のファイルからの入力  362   
 複数の変数を表示する  47   
 複数バイト  283   
 複素数型  87   
        <complex.h>  87    88   
        _ _extension_ _ 拡張機能  88   
        _ _STD_IEC_559_COMPLEX_ _ これが定義されている場合のみ、_Imaginary 型が使用できる  87(脚注39)   
        _Complex 複素数型 (C99以降)  87    88   
        _Complex_I (マクロ) 虚数単位定数(1.0+i) (C99以降)  88   
        _Imaginary 虚数部の値を示す型(C99以降)  87(脚注39)   
        cimag 関数 複素数データの虚部を返す  88   
        complex 複素数型  88   
        creal 関数 複素数データの実部を返す  88   
        double complex 実部・虚部がdouble型の複素数型  88   
        float complex 実部と虚部がfloat型の複素数  88   
        I (虚数、まくろ)  88   
        long double complex  88   
        虚数部の数値  88   
        虚数単位  87   
        虚数部  87    87(脚注39)   
        実数部  87   
        実数部の数値  88   
 複文  121   
        単純if 文を複文に置き換える  122(図4.6)   
        複文は一つの文として扱われる  122   
        プログラムの形式  121   
 符号  64   
        最上位ビットを符号として扱うかどうか  64   
 符号が付いたデータ  64   
        符号  64   
 符号が付かないデータ  64   
        符号  64   
 符号付き  
        本書ではcharは符号付きと仮定します  65(脚注13)   
 符号付整数  63(表3.2)    65   
 符号なし最大値  
        UCHAR_MAX (char型の符号なし最大値)  67(Coffee Break 3.2)   
        UINT_MAX (int型の符号なし最大値)  67(Coffee Break 3.2)   
        ULLONG_MAX (long long int型の符号なし最大値)  67(Coffee Break 3.2)   
        ULONG_MAX (long型の符号なし最大値)  67(Coffee Break 3.2)   
        USHRT_MAX (short型の符号なし最大値)  67(Coffee Break 3.2)   
 符号なし整数  65   
 復帰  399(付録3)   
 物理メモリ  19   
 不定  83    104    214    215    292    299   
        bの値は不定である  206    207   
 不等号  110(表4.4)   
 浮動小数点  75(落とし穴3.2)    319(Coffee Break 9.1)   
        浮動小数点xのx2x*x、x3x*x*xとかく  143   
        浮動小数点の小数点以下の演算には誤差が付き物  151   
        リスト3.6 浮動小数点の表示  77   
        リスト3.7 丸め誤差  80   
 浮動小数点型  63    65    93    100    129   
        余りを求める演算子はない(浮動小数点型) ⇒fmod(x) 関数を使う  96   
        拡張倍精度浮動小数点型  64(表3.3)   
        表現できる浮動小数点型の値の範囲  65(表3.5)   
 浮動小数点型の演算回路  93(図3.5)   
 浮動小数点型の演算子  95   
 浮動小数点型の算術演算子  96(表3.16)   
 浮動小数点数  63(表3.2)   
 浮動小数点データの表現方法  
        IEEE754  65(脚注14)   
 浮動小数点定数  77   
 浮動小数点の余り  
        fmod(x) 関数 x/yの浮動小数点の余り。関数値の符号はxと同じ  96(脚注53)   
 浮動小数点の内部表現  65(図3.3)   
 浮動小数点の表示  77   
 負の数  64    68(Coffee Break 3.4)   
 不明な識別子  344(Coffee Break 9.7)   
 不明な名前  317    318    343   
 ブラウン管  8   
 フラグ  170    171   
        終了フラグ  171   
        リスト4.22 フラグを使った強制脱出(掛け算問題)  170   
 フラグレジスタ  13   
 ブラックボックス  176   
 フラッシュ  358(Coffee Break 10.1)   
 フラッシュROM  14    17(脚注46)   
 フラッシュメモリ  10   
 プランク定数 (6.62607015×10-34 J s)  77   
 フリップフロップ  14   
 プリプロセス  23(Coffee Break 1.3)   
 プリプロセッサ  23(Coffee Break 1.3)    181    341(Coffee Break 9.5)    343    345   
 フルHD  8   
 ふるい  133   
 ブレークダウン  382(脚注4)   
 ブレークポイント  26   
 付録  
        ASCII コード表  398(付録1)   
        キーワード(予約語) 一覧  399(付録2)   
        エスケープシーケンス一覧  399(付録3)   
 プログラマ  318(Coffee Break 9.1)   
 プログラミング  2    20    30    34   
        エラーメッセージ  22   
        計算してみよう  41   
        実行させてみよう  27   
        ソースファイルを作る  20   
        ディスプレイに表示する  44   
        動的なプログラミング  57   
        どのようにつくるのか考える  20   
        プログラミングに慣れないうちは、入力データは常に表示して確認する  113(脚注5)   
        プログラミングの学習  30   
        プログラミングの進め方  20   
        プログラムの内容を考える  20   
 プログラミング言語  2    16   
        Basic 初心者向けのプログラミング言語  2   
        C  2   
        C# アンダース・ヘルスバーグ(マイクロソフト)が設計したオブジェクト指向プログラミング言語  2   
        C++ 1983年に公開されたオブジェクト指向プログラミング言語  2    198    289    339(Coffee Break 9.4)   
        C11 C言語のISO規格:ISO/IEC 9899:2011  199   
        C99 C言語のISO規格:ISO/IEC 9899:1999  227(脚注2)    243(脚注17)    330   
        COBOL コボル:1959年に事務計算用に開発されたプログラミング言語  2   
        Fortran フォートラン:1954年にIBMのジョン・バッカスによって開発された世界初の科学技術用プログラミング言語  2    89(脚注40)   
        Java  2    329(Coffee Break 9.3、(脚注a))    339(Coffee Break 9.4)   
        Lisp  2   
        Pascal  2   
        PL/I  2   
        Prolog  2   
        Python  2   
        R  2   
        Visual Basic  2   
        void  89(脚注40)   
 プログラミングの学習  30   
 プログラミングの進め方  20   
 プログラミングの流れ  34   
 プログラム  2    12    16    28    34   
        CPUは同時に1つのプログラムしか実行できない  18   
        Cプログラム実行までの手順  24(図1.12)   
        OSの起動プログラム  17   
        アセンブリプログラム  16   
        受付プログラム  326   
        関数プログラム  180(図5.4)   
        機械語プログラム  16    22(図1.10)   
        記述を簡単にする  341   
        巨大なプログラム  53   
        高速なプログラム  238   
        コンピュータはプログラムに書かれたとおりに動作する  26   
        シェルプログラム  28   
        実行可能プログラム  24(図1.12)   
        実用的なプログラム  379   
        正常終了  35   
        ソースファイルを作る  20   
        大規模なプログラム  6    39   
        どのようにつくるのか考える  20   
        長くて見通しの悪いプログラム  225   
        「夏日カウント」プログラム  380   
        人間でも解釈しやすいプログラム  52   
        複雑なプログラム  106   
        プログラムが実行できるまで  17   
        プログラムが実行できるようになるまで  17   
        プログラムが死んだ  26   
        プログラムの一般形式  180(図5.4)   
        プログラムの切り替え  18   
        プログラムの構造  180   
        プログラムの作成  20   
        プログラムの実行  20    39   
        プログラムの実行が正常に終了した場合、0を返す  179   
        プログラムの実行が途中で停止してしまう  41   
        プログラム実行の方法  25   
        プログラムの動作が保証されない  367(脚注21)   
        プログラムの動作環境  27   
        プログラムの内容を考える  20   
        プログラムの入出力  27   
        プログラムのロード  17   
        プログラムを多く読む  20   
        プログラムを実行させる  26   
        ブートプログラム  17(脚注47)   
        見通しの良いプログラム  225   
        名簿表示プログラム  320   
        メインプログラム  180(図5.4)    181   
 プログラムカウンタ  13    15   
 プログラムが実行できるまで  17   
 プログラムが実行できるようになるまで  17   
 プログラムが死んだ  26   
 プログラム内部  
        関数が呼ばれたときのプログラム内部の処理過程  207   
 プログラムの切り替え  18   
 プログラムの形式  
        do-while 文  161(図4.16)   
        for 文  55    146(図4.13 プログラムの形式)   
        for 文中でbreak 文が使われる場合  165   
        goto 文による例外処理  171   
        if else 文  126(図4.8)   
        if 文  48   
        switch 文(breakなし)  130(図4.10)   
        switch 文(breakあり)  127(図4.9)   
        void 型関数の定義の一般規則例  204(プログラムの形式)   
        while 文  154(図4.15)   
        while 文中でbreak 文が使われる場合  165   
        関数の定義  177   
        条件文  133(図4.11)   
        単純if 文  120(図4.3)   
        等号を使った条件式  48   
        複文  121   
        プロトタイプ宣言  183   
        無限ループ  166   
        論理演算子による条件式の結合  116   
        ローカル変数(その1)  191   
        ローカル変数(その2)  191   
        ローカル変数(その3)  192   
 プログラムの作成  20   
 プログラムの実行  20    39   
 プログラムの実行が途中で停止してしまう  41   
 プログラムの実行時  
        変数の初期化はプログラムの実行時に行われる  84   
 プログラム実行の方法  25   
 プログラムの終了コード  141(Coffee Break 4.2)   
 プログラムの整形  52   
 プログラムの設計  382   
 プログラムの作り方  
        メッセージを表示する  34   
 プログラムの動作環境  27   
 プログラムの内容を考える  20   
 プログラムの流れを変える  48    54   
 プログラムの入出力  27   
 プログラムの暴走  235(落とし穴6.1)   
 プログラムのロード  17   
 プログラムリスト一覧  
        リスト1.1 2つの数を足し算するCプログラム  20   
        リスト2.1 メッセージを表示するCプログラム  34   
        リスト2.2 ソースコードの可読性を向上させるCプログラム  35   
        リスト2.3 コメントの書き方(その1、複数行にわたって書く)  36   
        リスト2.4 コメントの書き方(その2、命令文の後ろに書く)  36   
        リスト2.5 コメントの書き方(その3、コンパイルエラーとなる例)  37   
        リスト2.6 コメントの書き方(その4、//を使って書く)  37   
        リスト2.7 コンパイルエラーとなる誤ったソースコード  40   
        リスト2.8 キーボードからの入力  43   
        リスト2.9 足し算のプログラム  45   
        リスト2.10 四則演算のプログラム  46   
        リスト2.11 2つの整数が割りきれる場合答えを表示するプログラム  49   
        リスト2.12 割りきれない場合の処理を追加したプログラム  50   
        リスト2.13 入力された値が0でないかチェックするプログラム  51   
        リスト2.14 FizzBuzzゲームを行うプログラム  54   
        リスト3.1 型の情報を表示  66(Coffee Break 3.2)   
        リスト3.2 文字の表示  69   
        リスト3.3 引用文字の表示  70   
        リスト3.4 文字の計算  72   
        リスト3.5 文字の変換  73   
        リスト3.6 浮動小数点の表示  73   
        リスト3.7 丸め誤差  80   
        リスト3.8 変数を用いた計算  81   
        リスト3.9 実行文後の変数の定義例  83   
        リスト3.10 初期化していない変数の使用例(誤りのあるプログラム)  83   
        リスト3.11 きちんとした変数定義をした例  85   
        リスト3.12 定数の使用例:エネルギーの計算  86   
        リスト3.13 整数の加算、減算、除算、余り  94   
        リスト3.14 %を用いない余りの計算  95   
        リスト3.15 double 型の加算・減算  96   
        リスト3.16 sizeof 演算子の使い方  97   
        リスト3.17 型変換による精度の消失  101   
        リスト3.18 型変換と代入演算子の順序  102   
        リスト4.1 関係演算子  110   
        リスト4.2 文字の比較  112   
        リスト4.3 ANDとORの使用例  112   
        リスト4.4 偶数か奇数かの判断  125   
        リスト4.5 入賞者の判別  128   
        リスト4.6 break 文なしswitch 文  131   
        リスト4.7 switch 文で月の日数を判断する  132   
        リスト4.8 半径1の円周上の座標を求める  139   
        リスト4.9 2次方程式の実数解を求める  143   
        リスト4.10 1から10までの和を求める  146   
        リスト4.11 sin, cosの三角関数  150   
        リスト4.12 数当てゲーム  152   
        リスト4.13 数表  154   
        リスト4.14 1から10までの和を求める  156   
        リスト4.15 入力した文字を出力する(その1)  158   
        リスト4.16 入力した文字を出力する(その2)  159   
        リスト4.17 do-while 文によるプログラム例  161   
        リスト4.18 厄年ではない年齢を表示する  162   
        リスト4.19 偶数の数表  164   
        リスト4.20 無限ループとbreak の使用例  166   
        リスト4.21 goto 文による多重ループの強制脱出(掛け算問題)  169   
        リスト4.22 フラグを使った強制脱出(掛け算問題)  170   
        リスト5.1 整数の正のべき乗を計算する関数(その1)  177   
        リスト5.2 整数の正のべき乗を計算する関数(その2)  178   
        リスト5.3 整数の正のべき乗を計算する関数(その3)  179   
        リスト5.4 整数の正のべき乗を計算する関数(その4)  182   
        リスト5.5 整数の正のべき乗を計算する関数(その5)  184   
        リスト5.6 常にゼロを返す計算する関数(その1)  184   
        リスト5.7 常にゼロを返す計算する関数(その2)  184   
        リスト5.8 整数の正のべき乗を計算する関数(完全版)  185   
        リスト5.9 組み合わせを求める関数 combi  187   
        リスト5.10 printf を使ったデバッグの例  190   
        リスト5.11 sqrt の計算と表示  193   
        リスト5.12 関数の引数と個数と型の一致  195   
        リスト5.13 max 関数  196   
        リスト5.14 誤りのあるmax 関数の例  198   
        リスト5.15 正しいmax 関数の例  198   
        リスト5.16 総称選択を用いたmax 関数  200   
        リスト5.17 組み合わせを求めるより簡潔なプログラム  201   
        リスト5.18 最大公約数を求めるプログラム (その1)  203   
        リスト5.19 最大公約数を求めるプログラム (その2)  204   
        リスト5.20 times 関数の使用例  210   
        リスト5.21 自分自身が呼ばれた回数を返す関数 (誤りの例)  211   
        リスト5.22 自分自身が呼ばれた回数を返す関数 (グローバル変数版)  211   
        リスト5.23 自分自身が呼ばれた回数を返す関数 (static 変数版)  212   
        リスト5.24 static 変数 x の初期化例 (正しい例)  213   
        リスト5.25 static 変数 x の初期化例 (誤りの例)  214   
        リスト6.1 配列を使わないプログラム例:複雑で長くなる  224   
        リスト6.2 配列を使ったプログラム  225   
        リスト6.3 配列の代入と参照 (入力チェック組込版:23行目以降は省略)  230   
        リスト6.4 配列の代入と参照 (全要素出力版)  230   
        リスト6.5 配列とfor 文を用いた体重の最大値と最小値の検出  231   
        リスト6.6 配列を使用しない体重の最大値と最小値の検出  233   
        リスト6.7 平均値・分散・標準偏差 (その1)  236   
        リスト6.8 平均値・分散・標準偏差 (その2)  238   
        リスト6.9 バブルソートによる並べ替え  245   
        リスト6.10 バブルソートによる並べ替え (マクロ使用版)  248   
        リスト6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249   
        リスト6.12 行列の和  252   
        リスト6.13 行列の積  255   
        リスト6.14 最も離れた席を探す  259   
        リスト7.1 文字 A を表示する  268   
        リスト7.2 文字配列 (char 型の配列) に文字列を格納する  270   
        リスト7.3 配列に文字配列に格納する (標準関数を利用)  271   
        リスト7.4 文字配列の終端がわからないプログラム  271   
        リスト7.5 エスケープシーケンスを使った文字の例  273   
        リスト7.6 文字列の長さを知るプログラム (標準関数を使用)  274   
        リスト7.7 文字列の長さを知るプログラム  274   
        リスト7.8 文字列の比較を行うプログラム (標準関数を使用)  275   
        リスト7.9 文字列の比較を行うプログラム  276   
        リスト7.10 文字列のコピーを行うプログラム (標準関数を使用)  278   
        リスト7.11 文字列のコピーを行うプログラム  279   
        リスト7.12 文字列の連結を行うプログラム (標準関数を使用)  280   
        リスト7.13 文字列の複写 (str_cpy 関数)と連結 (str_cat 関数)を行うプログラム  281   
        リスト9.1 構造体の利用  320   
        リスト9.2 共用体の利用 (その1)  325   
        リスト9.3 共用体の利用 (その2)  327   
        リスト9.4 共用体で同じメモリを参照する  328   
        リスト9.5 最も離れた席を探す (構造体配列版)  335   
        リスト9.6 構造体のメンバをポインタを使って参照する  337   
        リスト8.1 変数 x の配置アドレスを表示する  289   
        リスト8.2 変数 x の配置アドレスを、ポインタを用いて表示する  290   
        リスト8.3 ポインタ演算のテスト(その1)  294   
        リスト8.4 ポインタ演算のテスト(その2)  295   
        リスト8.5 ポインタ演算のテスト(演算子による違い)  296   
        リスト8.6 ポインタどうしの減算  297   
        リスト8.7 合計を求める (配列版)  299   
        リスト8.8 合計を求める (値のアクセスをポインタで行う版)  300   
        リスト8.9 合計を求める (よりCらしいプログラム)  301   
        リスト8.10 文字列の内容を表示するプログラム (配列版)  304   
        リスト8.11 文字列の内容を表示するプログラム (ポインタ版)  305   
        リスト8.12 誤りのあるswap 関数の例  306   
        リスト8.13 正しいswap 関数の例  307   
        リスト8.14 文字列をコピーする関数str_copy を呼び出す  309   
        リスト8.15 ポインタを使ったstr_copy 関数のプログラム  310   
        リスト8.16 int 型の配列に格納されている数値をすべて合計する関数 (不完全版)  311   
        リスト8.17 int 型の配列に格納されている数値をすべて合計する関数 (引数に配列の要素)  311   
        リスト10.1 データの集計 (手で入力作業をする版)  348   
        リスト10.2 データの集計 (入力ファイルからデータを読み込む)  352   
        リスト10.3 データの集計 (データファイル名の入力)  356   
        リスト10.4 データの集計 (データの終わりを判定する)  360   
        リスト10.5 データファイルへの出力  364   
        リスト10.6 データの追加  366   
        リスト10.7 fgets 関数を使用した例  370   
        リスト10.8 例外処理でgoto 文が有効な例  373   
        リスト10.9 goto 文を使用しない例  374   
        リスト10.10 ファイル入出力サンプル  375   
        リスト10.11 画面入出力サンプル  376   
        リスト10.12 stderr に置き換えたファイル入出力サンプル  377   
        リスト11.1 main 関数の実装  387   
        リスト11.2 データ取り出し関数の実装  389   
        リスト11.3 夏日計数関数の実装  390   
        リスト11.4 集計結果出力関数の実装  390   
        リスト11.5 夏日判定プログラム  391   
 プログラム領域  235(落とし穴6.1)   
        メモリ破壊はデータ領域を破壊するだけでなく、プログラム領域も破壊する  235(落とし穴6.1)   
 プログラムを多く読む  20   
 プログラムを実行させる  26   
 プログラムを終了させる  141   
 プロセス  18    18    19    107   
 プロセス間通信  18    19    29   
 プロセッサ  10    12    16   
        マイクロプロセッサ  329(Coffee Break 9.3)   
 プロセッサメーカ  17   
 ブロック  82    121    126    215    217    218   
        {} (ブロック)  121   
        落とし穴 4.2 ブロック形式を使わないと  122(落とし穴4.2)   
        仮ひきすうの通用範囲は、その関数のブロック内  216    216(図5.20)   
        ブロック記述されていない文  123(落とし穴4.2)    124(落とし穴4.2)   
        ブロック記述されている文  123(落とし穴4.2)    124(落とし穴4.2)   
 ブロック単位  
        ブロック単位でのコメント  37   
 プロトタイプ宣言  180(図5.4)    181    182    183    184    186    192(脚注15)    196    197    385    386   
        型変換可能な場合は、実ひきすうと仮ひきすうの値を自動的にプロトタイプ宣言で指定した型に変換  197   
        ひきすうを記述しなくてもよい  183   
        プロトタイプ宣言しなくてもよい場合  181   
        ローカル変数とプロトタイプ宣言を混在して定義  196   
 プロバイダ  
        インターネットプロバイダ  10   
 プロンプト  25(脚注62)    26    111   
        $  25(脚注62)   
        % (プロンプト)  25(脚注62)   
        > (プロンプト)  25(脚注62)   
 フロー  107   
 フローチャート  108(図4.2)    106    107    120   
        順次  106(表4.1)   
        順序  107   
        条件分岐  106(表4.1)   
        シーケンス  107   
        流れ  107   
        フロー  107   
        フローチャートで表現した基本制御構造  
               順次  107(図4.1)   
               条件分岐  107(図4.1)   
               ループ(繰り返し)  107(図4.1)   
        フローチャートの部品  
               処理  107   
               端子  107   
               入出力  107   
               判断  107   
        ループ(繰り返し)  106(表4.1)   
 文  34    106    121   
        break 文  108(表4.3)    127    130    131    136    165    168(Coffee Break 4.6)    169    170    171   
        case ラベル  127    171(落とし穴4.3)   
        continue 文  108(表4.3)    161    162    162(図4.17)    168(Coffee Break 4.6)    370   
        default ラベル  127   
        do 文 do-while 文のdo  161(図4.16)   
        do-while 文  108(表4.3)    145    161    162(図4.17)   
        else if 文  54    137   
        else 文  50    108(表4.3)    109    126(図4.8)    133    134    136    137    138   
        for 文  54    55    56    108(表4.3)    145    146    162(図4.17)    165   
        goto 文  108    167    168(Coffee Break 4.6)    169    169    170    171   
        if else 文  126(図4.8)    133    134    136    137   
        if 文  48    53    56    108(表4.3)    109    113    126(図4.8)    133    134    135    136    137    138   
        return 文  35    140    141(Coffee Break 4.2)    178    179    188   
        switch 文  108(表4.3)    109    129    135    136   
        while 文  108(表4.3)    145    161(図4.16)    162(図4.17)    165   
        式文  89   
        代入文  43   
        条件文  133   
        単文  121(脚注13)   
        複文  121   
        文の最後にセミコロンがない  41   
 分割  382   
        設計の基本は、問題を分割していくこと  382   
 分岐  
        無条件分岐  108    167   
 分岐完了  15   
 分岐命令  15   
 分散  235    236   
        分散(v)\( \displaystyle = \frac{1}{n}\sum^{n}_{i=1}(d_i-m)^2\)  236   
        分散(v)\( \displaystyle = \frac{1}{n}\sum^{n}_{i=1}(d_i-m)^2 = \frac{1}{n} \left( \sum^{n}_{i=1}(d^2_i - nm^2) \right)=\frac{1}{n}\sum^{n}_{i=1}( d^2_i - m^2 ) \)  238   
        リスト6.7 平均値・分散・標準偏差 (その1)  236   
        リスト6.8 平均値・分散・標準偏差 (その2)  238   
 文法  2    20   
 文法エラー  
        文字配列への代入を行おうとして文法エラーが発生する例  272   
 文房具  222   
 文法事項  
        break 文  165   
        continue 文  162(図4.17)   
 文脈  148(脚注36)   
 ブートプログラム  17(脚注47)   
 ブートローダー  17(脚注47)   
 ブーリアン型  86   
 ブール代数  86(脚注38)   
 フールプルーフ  119(脚注a)   
        foolproof フールプルーフ  119(脚注a)   
  ☝     へ
 平均値  235    236    352   
        平均値(m)\( \displaystyle = \frac{1}{n}\sum^{n}_{i=1}d_i\)  236   
        リスト6.7 平均値・分散・標準偏差 (その1)  236   
        リスト6.8 平均値・分散・標準偏差 (その2)  238   
 平均値   236   
 米国規格協会(ANSI)  7   
 平方根  192    193    260   
        2の平方根を求める  193(図5.1)   
        小さい数の平方根  193(脚注17)   
 べき乗  176   
        pow(x,y) 関数 xy  86(脚注37)   
        実数整数という計算ではpow関数は使わない  86(脚注37)   
        リスト5.1 整数の正のべき乗を計算する関数(その1)  177   
        リスト5.2 整数の正のべき乗を計算する関数(その2)  178   
        リスト5.3 整数の正のべき乗を計算する関数(その3)  179   
        リスト5.4 整数の正のべき乗を計算する関数(その4)  182   
        リスト5.5 整数の正のべき乗を計算する関数(その5)  184   
        リスト5.8 整数の正のべき乗を計算する関数(完全版)  185   
 ベクトル  250   
        1次元配列  250   
 ペタ  11   
 ヘッダ  385   
 ヘッダファイル  23(Coffee Break 1.3)    25(Coffee Break 1.4)    180(図5.4)    182    182(脚注10)   
        #defineディレクティブ ⇒ディレクティブ  27   
        #include<float.h>  232   
        #include<stdio.h>  23(Coffee Break 1.3)    34   
        .c (ヘッダファイルの拡張子)  182   
        標準入出力ライブラリ  25(Coffee Break 1.4)   
        標準ヘッダファイル  182   
 ヘッダファイルの指定  186   
 別名  339    340    341   
 ベル研究所  7   
 変換  
        英小文字を英大文字に変換  173   
        大文字→小文字変換  73   
        型変換  196   
        型変換可能な場合は、実ひきすうと仮ひきすうの値を自動的にプロトタイプ宣言で指定した型に変換  197   
        ギリシャ数字  135   
        度→ラジアンへの変換  139   
 変換文字  112   
 変更可能  
        変更可能な部分  303   
 変更不可能  
        変更不可能な部分  303   
 編者紹介  最後のページ   
 編集  21   
 変数  41    42    56    60    63    205   
        auto 変数  214    217   
        register 変数  214   
        static 変数  212    213    215    217    218(図5.23)   
        カウンタ変数  162   
        仮ひきすうの通用範囲  216    216(図5.20)   
        関数が異なれば同じ名前の変数でも異なる変数として扱われる  192   
        共用体変数  324    326   
        グローバル変数  210    211    212    212(脚注30)    215    217    218    219(図5.24)   
        構造体変数  316    320   
        参照  43    45   
        自動変数  206    210    210(脚注29)    211    215    293(落とし穴8.2)   
        自動変数の通用範囲  216   
        初期化  45   
        初期値  43    156(脚注45)   
        静的な変数  212    215    217   
        静的変数  293(落とし穴8.2)   
        大域変数  386    386(脚注9)    388    389    390   
        代入  45   
        注意点  
               変数のアドレスはいつまでも使えるとは限らない  293(落とし穴8.2)   
        定義された変数の配置  88(Coffee Break 3.5)   
        配列の要素数には変数を指定することもできる⇒動的に配列のサイズを変更できる  249   
        配列変数の定義  226   
        複数の変数を表示する  47   
        フラグ  170   
        変数のアドレス  287(脚注5)   
        変数の通用範囲  216   
        変数の役割を明確にする  341   
        変数への値の格納  43   
        変数を用意する  42   
        変数を利用する  42   
        ポインタが指し示す変数の型を指定しなければならなかった理由  291   
        ポインタ変数  288    289    290    291   
        未定義である状態  45   
        メインプログラムで宣言した変数の有効範囲  192   
        有効範囲  191   
        レジスタ変数  289(脚注10)   
        列挙型変数  344(Coffee Break 9.7)   
        列挙変数  343    344   
        ローカル変数  191    192    196    206    208    209    210    213    391   
        ローカル変数とプロトタイプ宣言を混在して定義  196   
 変数定義  42    45    81    82    186   
        double  42   
        int  42    113   
        一度初期化した別の変数を用いて、他の変数を初期化する  84   
        型名  82   
        関数が異なれば同じ名前の変数でも異なる変数として扱われる  192   
        さまざまな変数定義  85   
        ポインタには指し示す変数の型を指定する  291(図8.4)   
        リスト3.11 きちんとした変数定義をした例  85   
 変数とは何か  60   
 変数のアドレス  287(脚注5)   
        メモリ中に存在する変数のアドレスは、常に一定となるわけではない  286(落とし穴8.2)   
 変数の大きさ  
        sizeof 演算子  97   
        リスト3.16 sizeof 演算子の使い方  97   
 変数の格納される位置  235(落とし穴6.1)   
 変数の型  
        ポインタが指し示す変数の型を指定しなければならなかった理由  291   
 変数の初期化  83   
        変数の初期化はプログラムの実行時に行われる  84   
 変数の定義例  
        リスト3.9 実行文後の変数の定義例  83   
        リスト3.10 初期化していない変数の使用例(誤りのあるプログラム)  83   
 変数への値の格納  43   
 変数名  42    60   
        2番目以降の文字(変数名)  60   
               AからZ、aからz、0から9、下線  60   
        誤りのある変数名  61   
        大文字と小文字が区別される  61   
        カタカナの変数名は許されない  61   
        漢字の変数名は許されない  61   
        関数が異なれば同じ名前の変数でも異なる変数として扱われる  192   
        キャメルケース  62(Coffee Break 3.1)   
        ギリシア文字の変数名は許されない  61   
        キーワード(予約語)はいけない  61   
        最初の文字  60   
               AからZ、aからz、下線  60   
        使用できる変数名  60   
        スネークケース  62(Coffee Break 3.1)   
        途中に英字、下線、数値以外の文字があってはいけない  61   
        途中に空白があってはいけない  61   
        ハンガリアン記法  62(Coffee Break 3.1)   
        変数名の長さに制限はないが、最初の31文字までが有効  61   
        予約済み識別子があってはいけない  61   
 変数を用いた計算  81   
 変数を用意する  42   
 変数を利用する  42   
  ☝     ほ
 ポインタ  44    270    272    286    287    288(図8.2)    290    291    292    295    297    298    298(図8.6)    300    302    303    305    312(Coffee Break 8.2)    341(Coffee Break 9.5)    342    351    358(Coffee Break 10.1)   
        %p (ポインタ表示書式指定)  289   
        & (アドレス演算子)  44    111   
        * (ポインタの定義)  290   
        double 型へのポインタ  290   
        int 型へのポインタ  290   
        NULL ポインタ  288    288(脚注7)   
        アドレスが無効になる例  293(落とし穴8.2)   
        仮ひきすう  
               仮ひきすうの宣言に「*」を指定する  308   
               関数の宣言の中での仮ひきすうの配列は、ポインタと同じ  310   
        ストリームポインタ  350    351    352    357(Coffee Break 10.1)    358(Coffee Break 10.1)    362    363    367    391   
        静的変数のアドレスは変化することがないのでプログラムの任意の場所で使用できる  293(落とし穴8.2)   
        先頭ポインタ  305   
        注意点  
               変数のアドレスをファイルなどに書いてはいけない  286(落とし穴8.1)   
               ポインタは指す型を定義しなければならない  312(Coffee Break 8.2)   
               ポインタを定義した時点では、そのポインタの値は設定されていない  302(図8.8)   
               メモリ中に存在する変数のアドレスは、常に一定となるわけではない  286(落とし穴8.1)   
        配列  298    298(図8.6)   
               配列は式の中ではポインタである  299(脚注21)   
               配列名とポインタの操作  302(表8.1)   
               ポインタと配列の相違  302   
               ポインタの値を1つづつ増加  296(図8.5)   
               ポインタの値を3つづつ増加  297(リスト8.5 12行目)   
               ポインタは配列の要素を渡し歩くようなイメージ  299(図8.7)   
        ひきすう  
               関数のひきすうの値を更新する  306   
               ポインタのひきすうとしての使い方  306   
        ファイルポインタ  350(脚注6)   
        ポインタが指し示す変数の型を指定しなければならなかった理由  291   
        ポインタには指し示す変数の型を指定する  291(図8.4)   
        ポインタ変数  291   
        ポインタを返す関数のエラーの値  289(脚注7)   
        ポインタを使用して文字配列への代入を行う例  272   
        ポイントする  288   
        文字列  303   
               文字型のポインタ  304   
        文字列定数  
               配列で初期化する  303   
               ポインタで初期化する  303   
        リスト8.2 変数 x の配置アドレスを、ポインタを用いて表示する  290   
        リスト8.8 合計を求める (値のアクセスをポインタで行う版)  300   
        リスト8.9 合計を求める (よりCらしいプログラム)  301   
        リスト8.11 文字列の内容を表示するプログラム (ポインタ版)  305   
        リスト9.6 構造体のメンバをポインタを使って参照する  337   
 ポインタ演算  266    293    294    296    297    311(Coffee Break 8.1)    312(Coffee Break 8.1)   
        ポインタ変数に可能な演算  
               ポインタ変数+整数 (結果はポインタ)  293    296   
               ポインタ変数ー整数 (結果はポインタ)  293   
               ポインタ変数ーポインタ変数 (結果はint 型)  293   
        ポインタ変数に不可能な演算(⇒エラーとなる)  
               ポインタ変数+実数  294   
               ポインタ変数ー実数  294   
               ポインタ変数*整数  294   
               ポインタ変数*実数  294   
               ポインタ変数/整数  294   
               ポインタ変数/実数  294   
               ポインタ変数%整数  294   
               ポインタ変数%実数  294   
        ポインタ演算の実例  
               char 型のポインタに +1 する (結果はポインタ)  296(図8.5)   
               short 型のポインタに +1 する (結果はポインタ)  296(図8.5)   
               int 型のポインタに +3 する (結果はポインタ)  297(リスト8.5 12行目)   
               long int 型のポインタに +1 する (結果はポインタ)  296(図8.5)   
               ポインタを -1 すると  297(脚注18)   
               sizeof (*ポインタ)  297   
               ポインターポインタ (この2つのポインタは同じ配列の要素)  297   
        リスト8.3 ポインタ演算のテスト(その1)  294   
        リスト8.4 ポインタ演算のテスト(その2)  295   
        リスト8.5 ポインタ演算のテスト(演算子による違い)  296   
        リスト8.6 ポインタどうしの減算  297   
 ポインタ表示書式指定  289   
 ポインタ変数  288    288(図8.2)    289    290    291    298   
        ポインタ変数の初期化  292   
        ポインタ変数の初期化の例  
               初期化されていないポインタ変数を利用すると重大な障害を引き起こす  292   
               すでに初期化されている別のポインタを代入する  292   
               変数のアドレスで初期化する  292   
        ポインタ変数は必ず初期化してから使う  292   
 ポイントする  288   
 方式  
        カウンタ方式  145    146   
        見張り方式  145    146   
 暴走  255(Coffee Break 6.1)    280    302   
        デバッグ用にprintf 関数を入れると暴走しないが、その文を取ると暴走する  235(落とし穴6.1)   
        プログラムの暴走  235(落とし穴6.1)   
 保証  
        プログラムの動作が保証されない  367(脚注21)   
 補助記憶装置  10    19   
 補数  68(Coffee Break 3.4)   
 保存  21   
 本書の注意点  
        本書ではcharは符号付きと仮定します  65(脚注13)   
 本体  154(脚注42)   
 本文デザイン担当者紹介  最後のページ   
 翻訳  21   
 ボールマウス  9   
  ☝     ま
 マイクロプロセッサ  329(Coffee Break 9.3)   
        マイクロプロセッサに応じた専用のCコンパイラ  329(Coffee Break 9.3)   
 マイナーアップデート  8(脚注21)   
 マウス  8    9   
        光学マウス  9   
        ボールマウス  9   
 マクロ  27    87    87(脚注39)    88    158   
        #define マクロの定義  87    247    252    345   
        _ _STD_IEC_559_COMPLEX_ _ これが定義されている場合のみ、_Imaginary 型が使用できる  87(脚注39)   
        _Complex_I (マクロ) 虚数単位定数(1.0+i) (C99以降)  88   
        EOF マクロ  158    352    358(Coffee Break 10.1)    359    368    370    371   
        EXIT_FAILURE マクロ  142(Coffee Break 4.2)    351   
        EXIT_SUCCESS マクロ  142(Coffee Break 4.2)    351    353   
        FILENAME_MAX マクロ ファイル名の最大の長さ  354    354(脚注11)   
        FOPEN_MAX マクロ 同時に開くことのできるファイルの最大数  362   
        I (虚数、まくろ)  88   
        数値定数マクロ  247    251   
        置換 (マクロ)  181(脚注8)   
        マクロ名には、大文字を用いる  247   
        リスト6.10 バブルソートによる並べ替え (マクロ使用版)  248   
 マクロ定義  289(脚注7)   
 マクロ定数  142(Coffee Break 4.2)    232    246   
 マクロな視点  382   
 マクロ名  87    252   
 マザーボード  9    10    17(脚注46)   
        マザーボードの写真  9(図1.4)   
 マシン語  16   
 マスクROM  14(脚注39)   
 または(OR)  114   
 待ち  
        入力待ち  160(Coffee Break 4.5)   
 間違ったスペル  22   
 マトリクス  8   
 真夏日  380   
 マルチタスクOS  18    19   
 マルチバイト文字  283    284   
 丸め誤差  80(落とし穴3.3)    80   
        リスト3.7 丸め誤差  80   
  ☝     み
 見えなくなる  218    218(脚注35)   
 右から左  92    92(脚注49)    99   
 右にシフトする  91(表3.14)   
 ミクロな視点  382   
 短い整数型  64(表3.3)   
 ミス  
        定義ミス(2次元配列の宣言)  251(脚注19)   
        定数であるべきデータを変数に格納してしまう  85   
        ポインタ変数の初期化を忘れた  292   
        ミスのあるif 文の動作  123(落とし穴4.2)   
 未定義である状態  45   
 未定義の値の引用  83(リスト3.10)   
 見通し  
        長くて見通しの悪いプログラム  225   
        見通しの良いプログラム  225   
 見張り方式  145    146   
  ☝     む
 無意味なデータ  206(脚注23)   
 無限  63   
 無限ループ  166    146    146(脚注34)    155(脚注44)    166    277    369   
        for( ; ; ) (無限ループ)  166(リスト4.20 8行目)    230(リスト6.3 15行目)   
        while( 1 )  166   
        while( 1 ) (無限ループ)  168(Coffee Break 4.6)    276(リスト7.9 8行目)   
        無限ループは永遠に続くので、必ず終了させなければならない  166   
 無効  
        アドレスが無効になる例  293(落とし穴8.2)   
 虫  3    4    4   
 無償  25   
 無条件分岐  108    167   
 無線接続  9   
 無名の穴  318(Coffee Break 9.1)    319(Coffee Break 9.1)    322   
  ☝     め
 メイク  39   
 名簿  314   
 名簿表示プログラム  320   
 命名規則  62(Coffee Break 3.1)    168(脚注55)    315(脚注3)    360(Coffee Break 10.2)   
 命名法  
        キャメルケース  62(Coffee Break 3.1)   
        スネークケース  62(Coffee Break 3.1)   
        ハンガリアン記法  62(Coffee Break 3.1)   
 命令  12    16   
        命令の実行  15   
        命令フェッチ  15   
        ロード命令  16   
 命令セット  16   
 命令デコード  15   
 命令の実行  15   
 命令フェッチ  13(脚注33)    15    15   
 命令文  
        リスト2.4 コメントの書き方(その2、命令文の後ろに書く)  36   
 命令レジスタ  13    15   
 メイン部分  34   
 メインプログラム  180(図5.4)    181    192   
        メインプログラムで宣言した変数の有効範囲  192   
 メインボード  9(脚注26)   
 メインメモリ  18    19   
 メガバイト  11   
 メジャーアップデート  8    8(脚注21)   
 メッセージ  24(図1.11)    30   
        エラーメッセージ  30   
 メッセージを表示する  34   
        メッセージを表示するCプログラム  34   
 メモリ  9(図1.4)    10    12    13    13    16    60    264(Coffee Break 6.2)    286    287    288(図8.3)    328(Coffee Break 9.3)    346   
        SDカードメモリ  10   
        USBメモリ  10   
        仮想メモリ  18    19   
        実メモリ  18   
        物理メモリ  19   
        変更可能な部分  303   
        変更不可能な部分  303   
        メインメモリ  18    19   
        メモリ空間  19   
        メモリ使用量  329(Coffee Break 9.3)   
        メモリ節約  329(Coffee Break 9.3)   
        メモリの使用量  326   
        メモリの節約  326   
        メモリ量  19   
        メモリを割り当てる  346   
        文字列とメモリの中身  284(図7.3)   
        連続したメモリ  88(Coffee Break 3.5)   
 メモリアクセス  15    15   
 メモリアドレス  264   
 メモリイメージ  287(図8.1)    304(図8.9)   
 メモリ空間  14    19   
 メモリ上での配列の並び  
        1次元配列  264(Coffee Break 6.2)    264(Coffee Break 6.2)(図6.18)   
        2次元配列  265(Coffee Break 6.2)    265(Coffee Break 6.2)(図6.18)   
 メモリ使用量  328(Coffee Break 9.3)   
 メモリの概念図  13   
 メモリの管理  18   
 メモリの無駄遣い  69(脚注19)   
 メモリ破壊  234(落とし穴6.1)    255(Coffee Break 6.1)    279    280    281(図7.2)    283(Coffee Break 7.2)    283(Coffee Break 7.2)   
        バッファオーバーフロー  279   
        プログラムの暴走  235(落とし穴6.1)   
        メモリの内容が、意図しない書き込みにより意味のない値に変わってしまうこと  234(落とし穴6.1)   
        メモリ破壊が起こる原因  234(落とし穴6.1)   
        メモリ破壊はさらに大きな領域の破壊を引き起こす可能性がある  234(落とし穴6.1)   
        メモリ破壊はデータ領域を破壊するだけでなく、プログラム領域も破壊する  235(落とし穴6.1)   
 メモリモデル  290(脚注11)   
 メモリ量  19   
 メモリを効率よく使う機能  6   
 メモリを割り当てる  346   
 メンバ  316    318    320    321    322(脚注13)    325    330    334   
        構造体メンバ  320    323    334   
        リスト9.6 構造体のメンバをポインタを使って参照する  337   
 メンバ名  330   
  ☝     も
 猛暑日  380   
 文字  71    74    111    113    160(Coffee Break 4.5)    268    269   
        ASCII アスキー:英字を中心とした7ビットの文字コード  276   
        ASCII文字  284(表7.1)   
        NULL文字  269    270    271    275    278   
        英小文字を英大文字に変換  173   
        絵文字  284(表7.1)   
        カタカナ  283   
        漢字  283    284(表7.1)   
        ギリシャ文字  284(表7.1)   
        日本語  283   
        日本語文字列  283   
        東アジアの諸文字  284(表7.1)   
        ひらがな  283    284(表7.1)   
        マルチバイト文字  283    284   
        文字データ参照の仕組み  305   
        文字配列  268   
        ユニコード  273   
        ラテン文字  284(表7.1)   
        リスト4.2 文字の比較  112   
        リスト7.1 文字 A を表示する  268   
        リスト7.5 エスケープシーケンスを使った文字の例  273   
 文字コード  71    72    74    112    113    118    372(Coffee Break 10.3)   
        0x09 --- タブの文字コード  372(Coffee Break 10.3)   
        0x0A --- 改行の文字コード  372(Coffee Break 10.3)   
        0x61 --- a の文字コード  372(Coffee Break 10.3)   
        ASCII アスキー:英字を中心とした7ビットの文字コード  69(脚注16)    71    73   
        EBCDIC エビシディック:IBMが定義した文字コード  71   
        if( c2 >= 'A' && c2 <= 'Z' )(文字コードの判定)  118   
        Unicode  69(脚注16)   
        UTF-8  69(脚注16)    283   
               バイト数  284(表7.1)   
               文字種  284(表7.1)   
        エスケープシーケンス  372(Coffee Break 10.3, (脚注b))   
        改行コード  372(Coffee Break 10.3)   
        正しく表示されない  378(Coffee Break 10.4)   
        ユニコード  69(脚注16)   
 文字データ  115(落し穴4.1)   
 文字どうしの計算  72   
 文字の計算  72   
 文字の大小  112   
 文字の入力  160(Coffee Break 4.5)   
 文字の判定  112   
 文字の比較  111    112   
 文字の表現  69   
 文字の表示  69   
 文字の変換  73   
 文字配列  268    269    270    354   
        初期化  271   
        文法エラー  
               文字配列への代入を行おうとして文法エラーが発生する例  272   
        ポインタを使用して文字配列への代入を行う例  272   
        文字配列の終端がわからず表示が文字化けしてしまった例  272   
        リスト7.2 文字配列 (char 型の配列) に文字列を格納する  270   
        リスト7.3 配列に文字配列に格納する (標準関数を利用)  271   
        リスト7.4 文字配列の終端がわからないプログラム  271   
 文字化け  
        文字配列の終端がわからず表示が文字化けしてしまった例  272   
        リスト7.4 文字配列の終端がわからないプログラム  271   
 モジュール化  6   
 文字列  74    268    269    273    303    310    354   
        注意事項  
               配列の大きさよりも長い文字列を代入することはできない  279   
        日本語文字列  283   
        ポインタ  303   
        メモリ破壊  
               コピー  283(Coffee Break 7.2)   
               複写  283(Coffee Break 7.2)   
               連結  283(Coffee Break 7.2)   
        文字型のポインタ  304   
        文字データ参照の仕組み  305   
        文字配列の終端がわからず表示が文字化けしてしまった例  272   
        文字列定数  268    303   
        文字列とメモリの中身  284(図7.3)   
        文字列のコピー  278   
               メモリ破壊  283(Coffee Break 7.2)   
        文字列の代入  323(Coffee Break 9.2)   
        文字列の長さ  273   
        文字列の比較  275    276   
        文字列の表現  268   
        文字列の複写  
               メモリ破壊  283(Coffee Break 7.2)   
        文字列の連結  280   
               メモリ破壊  283(Coffee Break 7.2)   
               文字列の連結の手順  281(図7.2)   
               連続した文字列定数は連結される  332   
        リスト7.2 文字配列 (char 型の配列) に文字列を格納する  270   
        リスト7.3 配列に文字配列に格納する (標準関数を利用)  271   
        リスト7.6 文字列の長さを知るプログラム (標準関数を使用)  274   
        リスト7.7 文字列の長さを知るプログラム  274   
        リスト7.8 文字列の比較を行うプログラム (標準関数を使用)  275   
        リスト7.9 文字列の比較を行うプログラム  276   
        リスト7.10 文字列のコピーを行うプログラム (標準関数を使用)  278   
        リスト7.11 文字列のコピーを行うプログラム  279   
        リスト7.12 文字列の連結を行うプログラム (標準関数を使用)  280   
        リスト7.13 文字列の複写 (str_cpy 関数)と連結 (str_cat 関数)を行うプログラム  281   
        リスト8.10 文字列の内容を表示するプログラム (配列版)  304   
        リスト8.11 文字列の内容を表示するプログラム (ポインタ版)  305   
 文字列定数  268    269    270    303   
        配列  
               配列で初期化する  303   
               ポインタで初期化する  303   
        文字列定数が連続して記述された場合  321   
 文字列の解析  389   
 文字列の内容  
        リスト8.10 文字列の内容を表示するプログラム (配列版)  304   
        リスト8.11 文字列の内容を表示するプログラム (ポインタ版)  305   
 文字列の中で引用符を表示する方法  70   
 文字列の表現  268   
 文字列の連結  
        文字列の連結の手順  281(図7.2)   
 もし~ならば、~する  48    106   
 もし~ならば、~する、そうでない場合は~する  50   
 モデム  338(脚注22)   
 モデル  
        メモリモデル  290(脚注11)   
 求め方  
        2の補数の求め方  68(Coffee Break 3.4)   
 戻り値  350   
        関数の戻り値の型を省略すると、intが指定されたことになる(が避けた方がよい)  184   
 戻り値をチェック  368   
 問題  
        ハードウェアの問題  368   
 モード  
        追加モード  366   
  ☝     や
 やくどし  162   
        リスト4.18 やくどしではない年齢を表示する  162(リスト4.16 7行目)   
 役割  
        関連性のある複数の項目をひとまとめにするのが構造体の役割  315   
 矢印演算子  336   
 やっかいなケース  
        デバッグ用にprintf 関数を入れると暴走しないが、その文を取ると暴走する  235(落とし穴6.1)   
  ☝     ゆ
 有効桁数  65   
 有効範囲  191    211   
        関数の外側でのextern 宣言の有効範囲は、宣言の直後から、そのコンパイル単位の終わりまで  218   
        メインプログラムで宣言した変数の有効範囲  192   
 優先順位  90    92    99    292    301(落とし穴8.3)    336    337   
        ! (優先順位)  99(表3.17)   
        != (非等号、優先順位)  99(表3.17)   
        % (余りを求める演算子、優先順位)  99(表3.17)   
        & (優先順位)  99(表3.17)    286(落とし穴8.1)   
        ( ) 数式で使う括弧  99(表3.17)   
        (cast) (優先順位)  99(表3.17)   
        * (間接演算子、優先順位)  99(表3.17)   
        * (乗算演算子、優先順位)  99(表3.17)   
        + (加算演算子、優先順位)  99(表3.17)   
        + (符号、優先順位)  99(表3.17)   
        ++ (優先順位)  99(表3.17)   
        , (コンマ演算子、優先順位)  99(表3.17)   
        - (減算演算子、優先順位)  99(表3.17)   
        - (符号、優先順位)  99(表3.17)   
        -- (優先順位)  99(表3.17)   
        -> (優先順位)  99(表3.17)   
        . (優先順位)  99(表3.17)   
        / (除算演算子、優先順位)  99(表3.17)   
        < (関係演算子、優先順位)  99(表3.17)   
        << (シフト演算子、優先順位)  99(表3.17)   
        <= (関係演算子、優先順位)  99(表3.17)   
        == (関係演算子、優先順位)  99(表3.17)   
        > (関係演算子、優先順位)  99(表3.17)   
        >= (関係演算子、優先順位)  99(表3.17)   
        >> (シフト演算子、優先順位)  99(表3.17)   
        [ ]  99(表3.17)   
        sizeof (優先順位)  99(表3.17)   
        アドレス演算子  301(落とし穴8.3)   
 有線接続  9   
 ユニコード  69(脚注16)    273   
        UTF-8  69(脚注16)    283   
        バイト数  284(表7.1)   
        文字種  284(表7.1)   
        ユニコードの表示  273(図7.5)   
 ユニーク  344(Coffee Break 9.7)   
 ユークリッドの互除法  203   
 ユーザ定義型  339    346   
  ☝     よ
 要件  382    384   
 ようす  
        関数の実行のようす  179   
 要素  
        1つの配列を構成する要素は、すべて同じ型である必要がある  227   
        配列  
               ポインタは配列の要素を渡し歩くようなイメージ  299(図8.7)   
        配列のコピーは、要素ごとに行う  229   
        配列の要素  227   
        配列名は、式の中に書かれた場合、その0番目要素の先頭アドレスになる  298   
 要素数  226    246   
        C99以前のコンパイラでは要素数に変数を指定することはできない  227(脚注2)   
        配列の要素数  246   
        配列の要素数には変数を指定することもできる⇒動的に配列のサイズを変更できる  249   
        配列の要素数の定義に変数や式を指定することもできる  227   
        配列の要素数は、「結果が整数となる式」でなければならない  227   
        リスト6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249   
 容量  
        確保する容量  
               配列では、確保する容量が多くなる  252   
 容量不足  
        ディスクの容量不足  368    371   
 予期せぬ状態  26    27   
 予測不能な事態  
        予測不能な事態が発生すること  367(脚注21)   
 ヨタ  11   
 呼び出し  
        関数の中から別の関数を呼び出す  201   
        関数の呼び出し  188   
        関数の呼び出し関係  202   
        関数の呼び出し手順  189   
        関数は呼び出されて、初めて実行される  181   
        関数呼び出しの際の値のコピー  188(図5.6)   
 呼び出し部分をコメントアウト  395   
 読み間違い  76(脚注28)   
 予約語  61   
        _Alignas アライメントの指定(C11以降)  399(付録2)   
        _Atomic データの競合性(C11以降)  399(付録2)   
        _Bool 論理型(C99以降)  87    399(付録2)   
        _Complex 複素数型 (C99以降)  87    88    399(付録2)   
        _Generic 総称選択:引数の型に合わせて、呼び出す関数を振り分ける (C11以降)  399(付録2)   
        _Imaginary 虚数部の値を示す型(C99以降)  87(脚注39)    399(付録2)   
        _Noreturn これが示されている関数は、呼び出し側に戻らないことを示す関数指示子(C11以降)  399(付録2)   
        _Static_assert 静的アサート:コンパイル時にチェックを行い、エラーメッセージを表示する(C11以降)  399(付録2)   
        _Thread_local スレッドに対してローカルなオブジェクトであることを示す(C11以降)  399(付録2)   
        alignof アライメント(境界調整)を返す(C11以降)  399(付録2)   
        auto 記憶クラス指定子  205    206(脚注22)     214   
        break 文  108(表4.3)    127    130    131    132    136    165    168(Coffee Break 4.6)    169    170    171   
        case ラベル  127    129    131    132    171(落とし穴4.3)   
        char  127    129    131    132    171(落とし穴4.3)   
        const 修飾子 変数の値を固定にする  85    86   
        continue 文  108(表4.3)    161    162    162(図4.17)    168(Coffee Break 4.6)    370   
        default ラベル  127    129    132    171(落とし穴4.3)   
        do 文 do-while 文のdo  108(表4.3)    145    161    161(図4.16)    162(図4.17)   
        double  42    63    65(表3.5)    77    95    96    112(脚注3)   
        else 文  108(表4.3)    50    109    124    126(図4.8)    133    134    136    137    138   
        enum 列挙型の定義  343    344    345   
        extern 記憶クラス指定子  205    206    206(脚注22)   
        float 浮動小数点数  63    65(表3.5)    77(脚注29)    96    98   
        for 文  54    55    56    108(表4.3)    145    146    146(図4.13 プログラムの形式)    162(図4.17)    165   
        goto 文  108    167    168(Coffee Break 4.6)    169    170    171    372    373    374   
        if 文  48    53    56    108(表4.3)    109    120    126(図4.8)    133    134    135    136    137    138   
        inline  399(付録2)   
        int  42    63    64(表3.4)    69(脚注19)    75    113   
        long  63    64(表3.3)    64(表3.4)    65    75   
        register 記憶クラス指定子  205    206    206(脚注22)   
        restrict  399(付録2)   
        return 文  140    141(Coffee Break 4.2)    178    179    188    197    204   
        short  63    64(表3.3)    64(表3.4)    65   
        signed  64    65    159   
        sizeof 演算子  97    262    297    319(Coffee Break 9.1)    345(Coffee Break 9.8)   
        static 記憶クラス指定子  205    206(脚注22)    213   
        struct  315    316    317    321    322   
        switch 文  108(表4.3)    109    126    127    129    132    135    136   
        typedef  206(脚注22)    339    340    341(Coffee Break 9.5)    341(Coffee Break 9.6)    343    346   
        union  324    325    327    328    331   
        unsigned  64    65    328   
        void  34    89(脚注40)    184    184(脚注13)    195    202(図5.11)    204   
        volatile  399(表A.2)   
        while 文  108(表4.3)    145    154    159    161(図4.16)    162(図4.17)    165   
 予約済み識別子  61    192(脚注15)   
 予約済み識別子があってはいけない  61   
 より長い整数型  64(表3.3)   
  ☝     ら
 ライブラリ  24(図1.12)    25(Coffee Break 1.4)   
        数学ライブラリ  25(Coffee Break 1.4)    236   
        標準入出力ライブラリ  25(Coffee Break 1.4)    28   
        ランタイムライブラリ  25   
 ラジアン  139    140   
 ラテン文字  284(表7.1)   
 ラベル  127(脚注17)    167   
        break 文  127   
        case ラベル  127    129    131    132   
        caseおよびdefaultはラベルであるが、これらは英小文字で書く  168   
        default ラベル  129    132   
        goto 文  167   
        名札  167   
        名札付き文  168   
        ラベルは英大文字で書くことが普通  168   
        使用事例  
               リスト 4.21 goto 文による多重ループの強制脱出(掛け算問題)  169(リスト4.21 21行目)   
               リスト 10.8 例外処理でgoto 文が有効な例  373(リスト10.8 16行目)   
 ランタイムライブラリ  25   
 ランダムアクセス  14(脚注39)   
  ☝     り
 理解  
        人間が正しく理解する  52   
 リスト一覧  
        リスト1.1 2つの数を足し算するCプログラム  20   
        リスト2.1 メッセージを表示するCプログラム  34   
        リスト2.2 ソースコードの可読性を向上させるCプログラム  35   
        リスト2.3 コメントの書き方(その1、複数行にわたって書く)  36   
        リスト2.4 コメントの書き方(その2、命令文の後ろに書く)  36   
        リスト2.5 コメントの書き方(その3、コンパイルエラーとなる例)  37   
        リスト2.6 コメントの書き方(その4、//を使って書く)  37   
        リスト2.7 コンパイルエラーとなる誤ったソースコード  40   
        リスト2.8 キーボードからの入力  43   
        リスト2.9 足し算のプログラム  45   
        リスト2.10 四則演算のプログラム  46   
        リスト2.11 2つの整数が割りきれる場合答えを表示するプログラム  49   
        リスト2.12 割りきれない場合の処理を追加したプログラム  50   
        リスト2.13 入力された値が0でないかチェックするプログラム  51   
        リスト2.14 FizzBuzzゲームを行うプログラム  54   
        リスト3.1 型の情報を表示  66(Coffee Break 3.2)   
        リスト3.2 文字の表示  69   
        リスト3.3 引用文字の表示  70   
        リスト3.4 文字の計算  72   
        リスト3.5 文字の変換  73   
        リスト3.6 浮動小数点の表示  73   
        リスト3.7 丸め誤差  80   
        リスト3.8 変数を用いた計算  81   
        リスト3.9 実行文後の変数の定義例  83   
        リスト3.10 初期化していない変数の使用例(誤りのあるプログラム)  83   
        リスト3.11 きちんとした変数定義をした例  85   
        リスト3.12 定数の使用例:エネルギーの計算  86   
        リスト3.13 整数の加算、減算、除算、余り  94   
        リスト3.14 %を用いない余りの計算  95   
        リスト3.15 double 型の加算・減算  96   
        リスト3.16 sizeof 演算子の使い方  97   
        リスト3.17 型変換による精度の消失  101   
        リスト3.18 型変換と代入演算子の順序  102   
        リスト4.1 関係演算子  110   
        リスト4.2 文字の比較  112   
        リスト4.3 ANDとORの使用例  112   
        リスト4.4 偶数か奇数かの判断  125   
        リスト4.5 入賞者の判別  128   
        リスト4.6 break 文なしswitch 文  131   
        リスト4.7 switch 文で月の日数を判断する  132   
        リスト4.8 半径1の円周上の座標を求める  139   
        リスト4.9 2次方程式の実数解を求める  143   
        リスト4.10 1から10までの和を求める  146   
        リスト4.11 sin, cosの三角関数  150   
        リスト4.12 数当てゲーム  152   
        リスト4.13 数表  154   
        リスト4.14 1から10までの和を求める  156   
        リスト4.15 入力した文字を出力する(その1)  158   
        リスト4.16 入力した文字を出力する(その2)  159   
        リスト4.17 do-while 文によるプログラム例  161   
        リスト4.18 厄年ではない年齢を表示する  162   
        リスト4.19 偶数の数表  164   
        リスト4.20 無限ループとbreak の使用例  166   
        リスト4.21 goto 文による多重ループの強制脱出(掛け算問題)  169   
        リスト4.22 フラグを使った強制脱出(掛け算問題)  170   
        リスト5.1 整数の正のべき乗を計算する関数(その1)  177   
        リスト5.2 整数の正のべき乗を計算する関数(その2)  178   
        リスト5.3 整数の正のべき乗を計算する関数(その3)  179   
        リスト5.4 整数の正のべき乗を計算する関数(その4)  182   
        リスト5.5 整数の正のべき乗を計算する関数(その5)  184   
        リスト5.6 常にゼロを返す計算する関数(その1)  184   
        リスト5.7 常にゼロを返す計算する関数(その2)  184   
        リスト5.8 整数の正のべき乗を計算する関数(完全版)  185   
        リスト5.9 組み合わせを求める関数 combi  187   
        リスト5.10 printf を使ったデバッグの例  190   
        リスト5.11 sqrt の計算と表示  193   
        リスト5.12 関数の引数と個数と型の一致  195   
        リスト5.13 max 関数  196   
        リスト5.14 誤りのあるmax 関数の例  198   
        リスト5.15 正しいmax 関数の例  198   
        リスト5.16 総称選択を用いたmax 関数  200   
        リスト5.17 組み合わせを求めるより簡潔なプログラム  201   
        リスト5.18 最大公約数を求めるプログラム (その1)  203   
        リスト5.19 最大公約数を求めるプログラム (その2)  204   
        リスト5.20 times 関数の使用例  210   
        リスト5.21 自分自身が呼ばれた回数を返す関数 (誤りの例)  211   
        リスト5.22 自分自身が呼ばれた回数を返す関数 (グローバル変数版)  211   
        リスト5.23 自分自身が呼ばれた回数を返す関数 (static 変数版)  212   
        リスト5.24 static 変数 x の初期化例 (正しい例)  213   
        リスト5.25 static 変数 x の初期化例 (誤りの例)  214   
        リスト6.1 配列を使わないプログラム例:複雑で長くなる  224   
        リスト6.2 配列を使ったプログラム  225   
        リスト6.3 配列の代入と参照 (入力チェック組込版:23行目以降は省略)  230   
        リスト6.4 配列の代入と参照 (全要素出力版)  230   
        リスト6.5 配列とfor 文を用いた体重の最大値と最小値の検出  231   
        リスト6.6 配列を使用しない体重の最大値と最小値の検出  233   
        リスト6.7 平均値・分散・標準偏差 (その1)  236   
        リスト6.8 平均値・分散・標準偏差 (その2)  238   
        リスト6.9 バブルソートによる並べ替え  245   
        リスト6.10 バブルソートによる並べ替え (マクロ使用版)  248   
        リスト6.11 バブルソートによる並べ替え (配列の要素数に変数を指定)  249   
        リスト6.12 行列の和  252   
        リスト6.13 行列の積  255   
        リスト6.14 最も離れた席を探す  259   
        リスト7.1 文字 A を表示する  268   
        リスト7.2 文字配列 (char 型の配列) に文字列を格納する  270   
        リスト7.3 配列に文字配列に格納する (標準関数を利用)  271   
        リスト7.4 文字配列の終端がわからないプログラム  271   
        リスト7.5 エスケープシーケンスを使った文字の例  273   
        リスト7.6 文字列の長さを知るプログラム (標準関数を使用)  274   
        リスト7.7 文字列の長さを知るプログラム  274   
        リスト7.8 文字列の比較を行うプログラム (標準関数を使用)  275   
        リスト7.9 文字列の比較を行うプログラム  276   
        リスト7.10 文字列のコピーを行うプログラム (標準関数を使用)  278   
        リスト7.11 文字列のコピーを行うプログラム  279   
        リスト7.12 文字列の連結を行うプログラム (標準関数を使用)  280   
        リスト7.13 文字列の複写 (str_cpy 関数)と連結 (str_cat 関数)を行うプログラム  281   
        リスト9.1 構造体の利用  320   
        リスト9.2 共用体の利用 (その1)  325   
        リスト9.3 共用体の利用 (その2)  327   
        リスト9.4 共用体で同じメモリを参照する  328   
        リスト9.5 最も離れた席を探す (構造体配列版)  335   
        リスト9.6 構造体のメンバをポインタを使って参照する  337   
        リスト8.1 変数 x の配置アドレスを表示する  289   
        リスト8.2 変数 x の配置アドレスを、ポインタを用いて表示する  290   
        リスト8.3 ポインタ演算のテスト(その1)  294   
        リスト8.4 ポインタ演算のテスト(その2)  295   
        リスト8.5 ポインタ演算のテスト(演算子による違い)  296   
        リスト8.6 ポインタどうしの減算  297   
        リスト8.7 合計を求める (配列版)  299   
        リスト8.8 合計を求める (値のアクセスをポインタで行う版)  300   
        リスト8.9 合計を求める (よりCらしいプログラム)  301   
        リスト8.10 文字列の内容を表示するプログラム (配列版)  304   
        リスト8.11 文字列の内容を表示するプログラム (ポインタ版)  305   
        リスト8.12 誤りのあるswap 関数の例  306   
        リスト8.13 正しいswap 関数の例  307   
        リスト8.14 文字列をコピーする関数str_copy を呼び出す  309   
        リスト8.15 ポインタを使ったstr_copy 関数のプログラム  310   
        リスト8.16 int 型の配列に格納されている数値をすべて合計する関数 (不完全版)  311   
        リスト8.17 int 型の配列に格納されている数値をすべて合計する関数 (引数に配列の要素)  311   
        リスト10.1 データの集計 (手で入力作業をする版)  348   
        リスト10.2 データの集計 (入力ファイルからデータを読み込む)  352   
        リスト10.3 データの集計 (データファイル名の入力)  356   
        リスト10.4 データの集計 (データの終わりを判定する)  360   
        リスト10.5 データファイルへの出力  364   
        リスト10.6 データの追加  366   
        リスト10.7 fgets 関数を使用した例  370   
        リスト10.8 例外処理でgoto 文が有効な例  373   
        リスト10.9 goto 文を使用しない例  374   
        リスト10.10 ファイル入出力サンプル  375   
        リスト10.11 画面入出力サンプル  376   
        リスト10.12 stderr に置き換えたファイル入出力サンプル  377   
        リスト11.1 main 関数の実装  387   
        リスト11.2 データ取り出し関数の実装  389   
        リスト11.3 夏日計数関数の実装  390   
        リスト11.4 集計結果出力関数の実装  390   
        リスト11.5 夏日判定プログラム  391   
 リダイレクション  28    29    377   
 リダイレクト機能  29   
 リターンキー  158    160(Coffee Break 4.5)   
 リテラル  
        複合リテラル  331   
 理由  
        ポインタが指し示す変数の型を指定しなければならなかった理由  291   
 領域  
        データ領域  235(落とし穴6.1)   
        配列は、それを確保するための領域が必要になる  238   
        プログラム領域  235(落とし穴6.1)   
        メモリ破壊はデータ領域を破壊するだけでなく、プログラム領域も破壊する  235(落とし穴6.1)   
 領域の破壊  
        メモリ破壊はさらに大きな領域の破壊を引き起こす可能性がある  234(落とし穴6.1)   
 リンカ  23(Coffee Break 1.3)    24(図1.12)    25   
 リンク  24(Coffee Break 1.3)    25(脚注63)    38    39    236    286   
        なぜコンパイルとリンクという工程が分かれているか  39   
        リンクの実行コマンド  39   
  ☝     る
 ルーチン  
        スタートアップルーチン  286(脚注1)   
 ループ  106    145    161    165    170    171   
        境界条件のチェック  157   
        無限ループ  146    146(脚注34)    155(脚注44)    166    277    369   
        ループの境界条件  156   
        ループを一挙に脱出したい  169   
 ループ(繰り返し)  106(表4.1)   
 ループ処理  145   
 ループの継続条件  145    146   
        カウンタ方式  145   
        見張り方式  145   
  ☝     れ
 例  
        いろいろな関数の例  200   
        入力例  112(図4.4)   
 例外  171   
 例外処理  171    372    373   
        goto 文による例外処理  171   
        リスト10.8 例外処理でgoto 文が有効な例  373   
        リスト10.9 goto 文を使用しない例  374   
 冷却  10   
 レコード  381    381(脚注3)    382    383   
        入力レコード構造体  389   
 レジスタ  13    14    16    214    289(脚注10)    346   
        データレジスタ  13   
        フラグレジスタ  13   
        命令レジスタ  13    15   
        レジスタ書き込み  16   
        レジスタ読み出し  15   
 レジスタ変数  289(脚注10)   
 列挙  339    343   
 列挙型  129    135    343    344(Coffee Break 9.7)    346   
        識別子の省略  344(Coffee Break 9.7)   
 列挙型変数  344(Coffee Break 9.7)   
 列挙子  343    344    345   
        列挙子の値  345   
 列挙定数  344(Coffee Break 9.7)    345   
 列挙変数  343    344   
        列挙変数には、列挙子以外の値が代入されてもかまわない  344   
               この状況をエラーとするコンパイラもある  344   
        列挙変数の大きさ  345(Coffee Break 9.8)   
 連結  236(脚注15)   
        文字列の連結  280   
        リスト7.12 文字列の連結を行うプログラム (標準関数を使用)  280   
        リスト7.13 文字列の複写 (str_cpy 関数)と連結 (str_cat 関数)を行うプログラム  281   
        連続した文字列定数は連結される  332   
 連続  
        文字列定数が連続して記述された場合  321   
 連続したメモリ  88(Coffee Break 3.5)   
  ☝     ろ
 論理演算子  114    115(表4.5)   
        ! (否定演算子)  115(表4.5)   
        != (非等号)  114   
        && (かつ)  114    115(表4.5)   
        || (または)  114    115(表4.5)   
        AND論理演算子  114    115(表4.5)    116   
        OR論理演算子  114    115(表4.5)    116   
        かつ(AND)  114   
        真理値表  116(表4.6)   
        でない(NOT)  114   
        否定演算子  114    115(表4.5)   
        または(OR)  114   
 論理演算子による条件式の結合  116   
 論理演算の真理値表  116(表4.6)   
 論理型  86    87   
 論理ブーリアン型  
        _Bool型  87   
 論理和  
        排他的OR  91(表3.14)   
        排他的論理和  91(表3.14)   
 ローカル変数  191    192    196    206    208    209    210    213    391   
        有効範囲  191   
        ローカル変数とプロトタイプ宣言を混在して定義  196   
 ロード  15    15(脚注43)    17    18    286   
        プログラムのロード  17   
        ロード命令  16   
 ロードモジュール  17    21    286   
  ☝     わ
 和  
        行列の和  252   
        リスト4.10 1から10までの和を求める  146   
        リスト4.14 1から10までの和を求める  156   
        リスト4.15 入力した文字を出力する(その1)  158   
        リスト4.16 入力した文字を出力する(その2)  159   
        リスト6.12 行列の和  252   
        リスト8.7 合計を求める (配列版)  299   
        リスト8.8 合計を求める (値のアクセスをポインタで行う版)  300   
        リスト8.9 合計を求める (よりCらしいプログラム)  301   
        リスト8.16 int 型の配列に格納されている数値をすべて合計する関数 (不完全版)  311   
        リスト8.17 int 型の配列に格納されている数値をすべて合計する関数 (引数に配列の要素)  311   
        リスト10.1 データの集計 (手で入力作業をする版)  348   
        リスト10.2 データの集計 (入力ファイルからデータを読み込む)  352   
        リスト10.3 データの集計 (データファイル名の入力)  356   
        リスト10.4 データの集計 (データの終わりを判定する)  360   
        リスト10.5 データファイルへの出力  364   
 渡し歩く  
        ポインタは配列の要素を渡し歩くようなイメージ  299(図8.7)   
 割り当て  
        メモリを割り当てる  346   
 割りきれない  49   
 割りきれない場合の処理を追加したプログラム  50   
 割りきれる  49   
 割る数  52   
 和を求める手順  147   
 ワークステーション  7(脚注12)   
 ワーニング(=ウォーニング)  22(脚注61)   
        関数の仮ひきすうと実ひきすうのベース型が異なっています  183