C程序设计语言 (书)

《C程序设计语言》（），又譯為C語言程式設計，是介紹C語言的计算机科学著作，由计算机科学家布萊恩·柯林漢（Brian Kernighan）和C语言之父丹尼斯·里奇（Dennis Ritchie）合著，是第一部介紹C語言編程方法的書籍。它因作者名字的縮寫被簡稱為K&R；或是因封面颜色，被稱為白皮书。

它在C语言的发展和普及过程中起到了非常重要的作用，被視為是C語言的業界標準規範，而且至今仍然广泛使用。它被公认为计算机技术著作的典范，以清晰简洁的文字讲述而著称。书中用"hello world"为实例开始讲解程序设计，成为程序设计语言图书的传统。

该书第1版出版于1978年，第2版（也是最新版本）出版于1988年，被译为世界上包括中文在内的20多种文字。

影响力
《C程序设计语言》堪称学习C语言程序设计的经典。行文简明，结构清晰，仅用200多页（包括第一版和第二版）就覆盖了C语言的内容。书中的程序范例紧扣主题，前后勾连，誉为经典。倾向于系统编程，作者通过自己良好的编程实践来说明C语言的技术特征。正如作者在书的前言中写道：
We have tried to retain the brevity of the first edition.  C is not a big language, and it is not well served by a big book.  We have improved the exposition of critical features, such as pointers, that are central to C programming.  We have refined the original examples, and have added new examples in several chapters.  For instance, the treatment of complicated declarations is augmented by programs that convert declarations into words and vice versa.  As before, all examples have been tested directly from the text, which is in machine-readable form.

中文翻译如下：
我们尽力保持第一版的简洁性。C语言不是一种大型语言，也不需要用一本很厚的书来描述。我们在讲解一些关键特性（比如指针）时做了改进，它是C语言的核心。我们重新对以前的例子进行了精炼，并在某些章节中增加了一些新例子。例如，我们通过实例程序对复杂的声明进行处理，以将复杂的声明转化成描述性的说明或反之。像前一版中的例子一样，本版中所有例子都是以机器可读的文本形式直接通过了测试。

在ANSI C出现之前，这本书的第一版一般是C编译器作者的参考标准。随着ANSI C的标准化，第二版的更加面向程序员而不是针对编译器作者，在作者在第二版序言中写道：
附录A是一个参考手册，并不是标准，我们希望通过较少的篇幅概述标准中的要点。附录的目的是为了帮助程序员更好地理解语言本身，而不是为一个编译器的实现者提供一个精确的定义，这个任务属于标准本身。附录B对标准库提供的功能进行了总结。它同样是面向程序员而非编译器实现者。附录C是对ANSI标准相对于以前版本所做的变更进行了小结。

中譯本
《C程序设计语言》，机械工业出版社，2004年。
《C 語言程式設計》，蔡文能譯，培生出版，2005年，ISBN 9861541713

参考资料

外部链接 
 The C Programming Language — 本书在贝尔实验室的官方网站
 
 
 Errata for The C Programming Language, Second Edition

C語言
電腦書籍
1978年書籍