C 言語プログラミング入門
シー ゲンゴ プログラミング ニュウモン
C99 対応
- 著者:
- 田中敏幸(タナカ, トシユキ)
- 出版社:
- コロナ社
- 出版日:
- 2009年09月
- ISBN:
- 9784339024425
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
慶應義塾大学理工学部 2 年生の授業のために作成した資料をテキストとしてまとめた、初めて C 言語を学ぶ人のための入門書。単なる文法の羅列は避け、必要最低限の文法とアルゴリズムに内容を凝縮し、それをいかに使うかに焦点を絞る。最新の C99 規格で取り入れられた複素数型などのプログラム例も示す。
技書の森解説
『C 言語プログラミング入門 C99 対応』 (田中敏幸 著、コロナ社、2009 年 9 月刊) は、著者が慶應義塾大学理工学部 2 年生の授業のために作成した資料をテキストとしてまとめた、初めて C 言語 を学ぶ人のための入門書です。版元は、単なる文法の羅列を避け、必要最低限の文法とアルゴリズムに内容を凝縮し、それをいかに使うかに焦点を絞った本と紹介しています。2002 年に同社から出た『C 言語によるプログラミングの基礎』を全面的に改訂した本で、1999 年の規格改定で加わった複素数型や可変長自動配列のプログラム例を示している点が、副題「C99 対応」の中身です。版元ページの著者表記は慶大教授 / 工博で、章末問題の解答は版元ページの関連資料として配布されています。同名の C 言語入門書は多いので、探す際は著者名と副題で見分けてください。
全 13 章と付録の構成、printf から構造体とファイル処理まで
構成は全 13 章と付録で、各章の末尾に章末問題が付きます。1 章はプログラミングの予備知識として C 言語の歴史、コンパイラとインタプリタ、文字コード、アルゴリズムとアドレス、プログラムを実行するまでの流れを扱い、2 章のディスプレイ表示 (printf 関数、データ型、変換指定、標準ストリーム)、3 章のキーボード入力と算術演算 (scanf 関数と、キャスト演算子やビット演算子を含む演算子) でまず入出力を動かしてから、4 章の条件判断 (if 文と switch 文)、5 章の繰り返し (while / do-while / for / goto) へ進みます。6 章のライブラリ関数では複素関数と文字種の判定、7 章のユーザ定義関数ではプロトタイプ宣言や関数のネスティングと再帰呼び出し、8 章では auto / extern / static / register の記憶域クラスとプリプロセッサを学び、9 章の配列 (一次元 / 多次元 / 可変長自動配列)、10 章のポインタ (アドレス、動的メモリ割り付け、ポインタと配列の違い)、11 章の文字列処理、12 章の構造体、13 章のデータの保存と表示 (テキストとバイナリのファイル処理、計算結果のグラフ表示) で締めます。付録は標準ライブラリ、Microsoft Visual C++ の使い方、GNU gcc の使い方、計算結果のグラフ表示の 4 節です。
C99 対応の意味と、文法中心に絞った設計の背景
著者はまえがきで、C 言語の本は書籍ごとに書式が少しずつ違い、規格に無い書式を用いている本も多いと指摘し、1999 年の規格改定 (C99) が極めて大幅な改定であったこと、2009 年時点では C99 を 100% 取り入れた処理系は見当たらず、大学の研究でよく使われる処理系の中では gcc がよく対応していることを記しています。そのうえで、改訂に際して C99 で新しく取り入れられた複素数型や可変長自動配列についてプログラム例を示して説明すると続けています。もう一つの方針が文法中心への絞り込みです。著者は、文法とアルゴリズムの両方を一冊に詰めた教科書では、理解できなくなったときにどちらが分からないのか判別できず習得に失敗する例が多かったとして、アルゴリズムは他書に委ね、研究で C 言語を道具として使うときに本当に必要な書式は意外に少ないという立場で内容を選んでいます。技術的に見ると、C 言語の入門で最も差がつくのは、変数がメモリのどこに置かれ、いつまで生きているかを意識できるかどうかです。8 章の記憶域クラスは自動変数と静的変数の寿命の違いを、10 章の動的メモリ割り付けは実行時に確保する領域を扱うので、スタックやヒープといった メモリレイアウト の見取り図を頭に置いて読むと、ポインタと配列の違いという定番の難所も筋道が見えます。7 章の 再帰 呼び出しも、関数呼び出しごとに自動変数が新しく確保されるという同じ理屈で理解できます。
慶應理工 2 年生向け教材としての前提と、向かない読者
前提知識はプログラミング未経験でよく、1 章に予備知識がまとめられています。理工系学部の授業資料が出発点なので、複素関数や計算結果のグラフ表示のように、数値計算を見据えた例が出てくるのが特徴で、理工系の数学に馴染みがあると例題が身近に感じられます。一方、著者自身が、プログラマという専門家になるにはもっと多くを学ぶ必要があると断ったうえで範囲を絞っていると述べているとおり、アルゴリズムやデータ構造を C 言語で本格的に鍛えたい人には別の本が要ります。アルゴリズム側は『C 言語による標準アルゴリズム事典 改訂新版』 (奥村晴彦 著) のような本で補い、ポインタを徹底的に掘りたいなら『C 言語ポインタ完全制覇』 (前橋和弥 著) を次の一冊に据える組み合わせが自然です。組み込みやマイコンなど特定用途に直結する入門を求める人にも守備範囲が違います。2009 年刊のため、付録の Microsoft Visual C++ と gcc の使い方は当時の版が前提で、開発環境の画面や手順は読み替えが必要になる場合があります。最初の言語をどう選び、本と動画教材をどう使い分けるかは プログラミング言語の入門書ガイド にまとめています。
元が取れるのは、理工系学部の授業で C 言語を履修する学生、研究や実験のデータ処理で C 言語を道具として使いたい学生や技術者、そして他の言語の経験はあるが C 言語を規格どおりの書き方で短く確認したい人です。読み終えると、printf と scanf による入出力から、関数、配列、ポインタ、構造体、ファイル入出力までを規格に沿った書式で書け、章末問題と配布されている解答で理解を確かめられます。大学の授業で 10 年かけて磨かれた説明を、初めての一冊として選べる堅実な入門書です。
言及した記事 (3 件)
この本に興味がある方におすすめ
関連する本
関連記事
インフラ / クラウド本ガイド - AWS や Docker を本で学ぶ
クラウドインフラ、コンテナ、IaC を学べる技術書の選び方と学習順序を紹介。インフラ本の賞味期限問題と公式ドキュメントとの使い分けも解説します。
ネットワーク本ガイド - TCP/IP の教科書からプロトコル各論や実務書までの選び方
ネットワークを学ぶ技術書の選び方を 3 段階 (全体像の教科書 → HTTP や DNS のプロトコル各論 → 実務と運用) で整理。マスタリング TCP/IP や図解入門 TCP/IP などの定番書の使い分けと、ネットワーク本の賞味期限の考え方を解説します。
技術書の情報が古くなったときの対処法
技術書の内容が古くなったときの対処法を紹介。古くなる部分と古くならない部分の見分け方、購入前の鮮度チェック方法を解説します。