プログラミング実習I 教科書の正誤表†
変数名や関数名の命名規則に、C言語では「すべて小文字、単語は_でつなげる」というスネークケースが用いられることが多いが、「単語の先頭を大文字にしてつなげる」というキャメルケースの用いられている部分がところどころに見られる。
- p.71 リスト3.4
- Large→large
Small→small
- p.257 リスト7.8
- Tokyo→tokyo
- p.332からp.336にかけて多数
- FileName→filename
- p.65 図3.1
- 浮動小数点の内部表現には、「符号部」を含める必要があるが、図には抜けている。
- p.66 coffee break 内3行目
- <limit.h>→<limits.h>
- p.66 coffee break 内の用語
- 最小値という単語が、文脈によって2通りの意味に用いられていることに注意する。doubleの最小値は、「0より大きい」という前提がついているのに対して、intの最小値にはその前提がない。
- p.75 下から4行目
- 全体で15桁、小数点以下3桁→全体で少なくとも15桁、小数点以下がちょうど3桁
- p.102 13行目(箇条書きの次の行)
- 手順1および4に→手順2および4に
- p.145 <<プログラムの形式>> 4.7(フローチャート)
- 下から戻る矢印の先が、「初期化」のマスの上に入っているが、上ではなく下に入るべき。
- p.169 リスト5.6の直前の段落からリスト5.7にかけて
- また、関数の定義では、その多くを省略することができます...→関数の定義では、C言語の旧規格との互換性のために、省略できるキーワードがいくつかありますが、メリットはありませんのできちんと記述するようにしましょう。
- p.207 下から2行目
- 4つの変数→5つの変数
- p.208 図6.5
- name配列の[8]の箱が余分
- p.238 下から1行目
- int a[3][2] = {1,2,3,4,5,6}; と定義することもできます。→int a[3][2] = {1,2,3,4,5,6}; という記述はエラーにはなりませんが、「初期化子の周りに中括弧がありません」といった警告が出ることがあります。
- p.251 リスト7.2 のタイトル
- 配列を文字に格納する→配列 に 文字 を 格納する
- p.251 リスト7.3 の直前の段落から p.252 リスト7.4にかけて
- ところで、リスト7.2には...少しトリッキーに感じられるかもしれませんが...→削除(トリッキーですので、真似しないでください。)
- p.297 最初の段落から4段落
- 次に構造体タグの省略について...警告を出すコンパイラも存在します。→構造体タグを省略してもメリットはありませんので、通常はしないでください。
10章†
- p.345 リスト10.7
- プログラの中程で if*1 == NULL) とNULLとの比較が記述してあるのに、もう少し下では while(fgets(string, STRING_SIZE, FP)) とNULLとの比較が省略されていて、一貫性に欠けます。このページの2行めには「fgets関数はNULLを返します」との記述があるので、while(fgets(string, STRING_SIZE, FP)!=NULL) と明示的に書くのがよいでしょう。