プログラミング言語 C〔第 2 版〕
プログラミングゲンゴシー
ANSI 規格準拠
- 著者:
- カーニハン, B.W. / リッチー, D.M. / 石田 晴久(カーニハン / リッチー / イシダ ハルヒサ)
- 出版社:
- 共立出版
- 出版日:
- 1994年03月
- 一覧:
- 共立出版の技術書
- ISBN:
- 9784320026926
- 在庫:
- メーカー取り寄せ
なぜ注目されているか
書籍紹介
本書は, アメリカの標準規格として 1988 年末に提出された C 言語の ANSI 規格にもとづいて第 1 版を全面的に書き直した新版である。ごく常識的に言えば, C 言語はリッチー博士がベル研で 1973 年に開発して以来, 多くのプログラマに使われているから, その仕様変更はちょっと不可能ということになるが, アメリカはあえて, その C の仕様変更・機能拡張をやってのけた。これで C が近代的なプログラミング言語としてよみがえったのだからすばらしい。
本書の付録 C の要約でもわかる通り, ANSI 規格による変更 (機能拡張) はそう大幅なものではないが, 重要な改良点を多く含んでいる。C によるプログラミングは, これまで自由度がありすぎて危険だとよくいわれてきたが, ANSI によって改良された結果, C によるプログラミングの安全性は大いに向上した。これで C の寿命は一段と長くなり, C は今後ますます広く使われることになるであろう。
技書の森解説
『プログラミング言語 C〔第 2 版〕』は、B. W. カーニハンと D. M. リッチーが著し、石田 晴久 が訳した C 言語の解説書で、共立出版から刊行されています。原書は The C programming language の第 2 版 (1988 年) で、副題「ANSI 規格準拠」が示すとおり、アメリカの標準規格として 1988 年末に提出された ANSI 規格にもとづいて第 1 版を全面的に書き直した版です。版元ドットコムの登録では訳書第 2 版の初版年月日は 1989 年 1 月で、国立国会図書館の書誌ではこの ISBN の本は 1994 年 3 月刊の訳書訂正版にあたります。著者 2 人の頭文字から K&R と略されることの多いこの本は、C の文法と標準ライブラリ、UNIX のシステムインタフェースまでを 1 冊で押さえたい人に向いています。
第 0 章から第 8 章と付録 A〜D、やさしい入門から UNIX まで
目次は第 0 章「はじめに」に続き、第 1 章「やさしい入門」で変数と算術式、For 文、文字入出力、配列、関数、外部変数と通用範囲までを一巡します。第 2 章以降はデータ型 / 演算子 / 式、制御の流れ、関数とプログラム構造 (ヘッダー・ファイル、静的変数、再帰、C のプリプロセッサー) と進み、第 5 章「ポインタと配列」、第 6 章「構造体」、第 7 章「入出力」を経て、第 8 章「UNIX システム・インタフェース」ではファイル記述子や低水準入出力、Fopen と Getc の実現、ディレクトリのリスティング、記憶割当てを例として扱います。巻末には付録 A の参照マニュアル、付録 B の標準ライブラリ、付録 C の変更点の要約、付録 D のパソコン用の C 処理系と日本語処理機能が続きます。第 1 章で言語の全体像を先に見せ、第 2 章以降で同じ題材を細かく掘り下げる組み立てと読めます。
ポインターと構造体に表れる C の設計
C 言語 の学習でつまずきやすいのは、変数がメモリ上のどこにあり、アドレスをどう受け渡すかを意識しなければならない点です。配列の名前が先頭要素へのポインターとして扱われ、ポインターに整数を足すと要素の大きさの分だけ先を指す、という約束を理解すると、文字列操作も関数への引数渡しも同じ原理で説明できるようになります。第 5 章はポインターとアドレスから始まり、アドレス計算、文字ポインターと関数、ポインター配列、多次元配列、コマンド行の引数、関数へのポインター、複雑な宣言までを扱い、第 6 章は自己参照的構造体やテーブル参照、共用体、ビット・フィールドへ進みます。スタックやヒープといった メモリレイアウト の知識と結びつけて読むと、第 8 章の記憶割当ての例が、ライブラリの内側で何が起きているかを示す題材として効いてきます。
ANSI 規格が前提、後の規格改訂との関係
ANSI 規格では関数の引数の型を宣言する関数プロトタイプが取り入れられるなど、型の検査が強められました。版元の紹介文も、ANSI による改良で C によるプログラミングの安全性が大いに向上したと述べ、変更点は付録 C に要約されています。一方で、C の国際規格 ISO/IEC 9899 はその後も改訂が続き、C の規格を扱う作業部会 WG14 のページによると改訂版の C23 が 2024 年に採択されています。本書が前提とするのは 1988 年末の ANSI 規格の C であり、C99 以降の改訂で加わった機能は扱いの外にあるため、新しい規格の機能は規格の解説や処理系の文書で補う必要があります。付録 D のパソコン用の処理系の話題も、刊行当時の環境を前提にしたものとして読むのが自然です。
目次の組み立てを見る限り、第 1 章から文字入出力や配列、関数まで一気に進むため、プログラミングの考え方そのものを一歩ずつ教える入門書とは性格が違います。別の言語で手を動かした経験があり、C の言語仕様を設計者の一人と共著者の言葉で一度通しで押さえたい人、OS や組み込みの仕事で C のコードを読む機会がある人には、文法と標準ライブラリ、システムインタフェースの基礎を 1 冊でつなげられる本です。低レイヤーへ進む次の一冊を探している場合は OS と低レイヤーの技術書の選び方 と合わせて読むと、本書をどこに置くかが決めやすくなります。
言及した記事 (6 件)
【徹底解説】DBスペシャリストなりぞこないが教える、データベースの教科書(設計もあるよ)
♡ 260AWS, DB, 初心者, Database, 新人プログラマ応援国立国会図書館サーチ APIを使ってみる
♡ 16WebAPI, 国立国会図書館, NDL構造力学パズル「SigmaZero」を AI と作った 196 日・952 コミット—Unity教科書の勉強から Claude Code のエージェント組織運営まで
♡ 7Unity, AI, ClaudeCode, Gemini, 構造力学Python PyxelでMS-DOS 時代N88-BASIC の授業を考える
♡ 1情報Ⅰ, Python, Pyxel, プログラミング教育, 初心者MISRA C 2012 組み込みプログラミングの高信頼化ガイド<エンジニア夏休み企画>【読書感想文】
♡ 1読書感想文, 個人開発, MISRA, AdventCalendar2022, エンジニア夏休み企画PySimpleGUIを使うプログラムのモジュール分割
♡ 0モジュール, 分割, 依存, PySimpleGUI
この本に興味がある方におすすめ
関連する本
関連記事
プログラミング本を図書館で無料で借りるコツと注意点
プログラミングの本は図書館で無料で借りられます。貸出冊数の上限や予約の使い方、棚の分類番号、借りる前に確認したい出版年などのコツを紹介します。
Python 本の選び方 - 独学の最初の 1 冊から実務品質まで
Python 本の選び方を「動機」から逆算して整理。プログラミング未経験の最初の 1 冊、業務自動化に直結する本、型ヒントとコード品質で実務水準へ進む本まで、2026 年 8 月時点の定番を独学ルートに沿って解説します。
ChatGPT に聞けば済む時代に、あえて本を開く理由
生成 AI で何でも聞ける時代に、技術書を読む意味はあるのか。AI の回答と書籍の知識の決定的な違いを掘り下げ、両者の使い分けを提案します。
関連用語
プログラミング
コンピューターに実行させる手順をプログラミング言語で記述し、動作を作り出す行為
依存グラフとは - モジュール間の依存関係を可視化する方法
依存グラフはパッケージやモジュール間の依存関係を有向グラフで表現する手法。循環依存の検出 / ビルド順序の決定 / 影響範囲分析での活用法を解説
Claude
Anthropic が開発した対話型 AI。安全性を重視した設計の大規模言語モデル
Gemini
Google が開発するマルチモーダル対応の生成 AI。テキスト / 画像 / 音声などを扱える
AI
人間の知的な処理をコンピューターで再現する技術の総称。学習 / 推論 / 認識などを含む
競技プログラミング
与えられた問題を制限時間内に正確 / 高速に解くプログラミング競技