C程序设计语言

Brian W.Kernighan

出版时间

1998-03-31

ISBN

9787302024125

评分

★★★★★
书籍介绍

C程序设计语言于1978年出了第一版,此后,计算机世界经历了一场革命,C语言也有了合理的变化。1988年美国国家标准学会就C语言的主义制订出了ANSI C标准。本书第二版就是按这个标准来描述C语言的。全书八章,分别分:1.指导性绪论;2.数据类型、运算符与表达式;3.控制流;4.函数与结构;5.指针与数组;6.结构;7.输入输出;8.UNIX系统界面。书后附录为:A.参考手册;B.标准库;C.语言

Brian W. Kernighan,贝尔实验室计算科学研究中心高级研究人员,著名的计算机科学家。参加了UNIX系统、C语言、AWK语言和许多其他系统的开发,同时出版了许多在计算机领域具有影响的著作,如《The Elements of Programming Style》《The Practice of Programming》《The UNIX Programming Environment》《The AWK Language》《Software Tools》等。

Dennis M. Ritchie,1967年加入贝尔实验室。他和 Ken L. Thompson 两人共同设计并实现的C语言改变了程序设计语言发展的轨迹,是程序设计语言发展过程中的一个重要里程碑。与此同时,他们还设计并实现了UNIX操作系统。正是由于这两项巨大贡献,Dennis M. ...

(展开全部)

AI导读
核心看点
  • 本书由C语言设计者亲自编写,严格遵循ANSI C标准,内容极度精简且权威。全书仅八章,涵盖数据类型、控制流、函数、指针、结构及UNIX接口,无任何冗余废话,体现了C语言简单高效的设计哲学,是理解C语言底层逻辑与标准库实现的唯一正统指南。
  • 书中深入讲解指针、数组、内存管理及位运算等核心概念,通过大量短小精悍的代码示例展示正确用法。特别强调指针操作的合法性与安全性,如禁止对未声明函数进行隐式声明,详细解析fgets、realloc等标准库函数的正确调用方式,帮助读者建立严谨的编程习惯。
  • 作为经典教材,本书不提供保姆式教学,而是假设读者具备基本编程思维。它不提供图形化界面或现代高级特性,专注于语言本质。书中习题极具挑战性,要求读者在Linux环境下使用vi和makefile进行实践,旨在培养读者独立解决复杂问题、深入理解系统底层机制的能力。
读者共识
  • 读者普遍认同本书是C语言领域的圣经,简洁、优雅、权威,无可替代。尽管篇幅短小,但信息密度极高,每一页都经过精心打磨,无法删减任何一字。许多读者表示,读完此书后对C语言的理解发生了质的飞跃,认为其他C语言教材相比之下都显得冗长且低效,是程序员书架上必须珍藏的经典。
  • 读者一致警告本书不适合零基础入门,强行阅读会导致困惑甚至放弃。多数评论指出,应先通过其他教材学习基本语法,再以此书作为进阶指南和规范参考。尽管有人批评其作为教材“让人疯掉”,但更多资深开发者认为,这种“疯掉”的过程正是打破思维定势、提升编程内功的必要痛苦,是成长的必经之路。
  • 读者高度赞赏本书对UNIX系统接口的结合讲解,认为这是其他C语言书籍无法比拟的优势。通过本书,读者不仅能学会C语言,还能掌握UNIX编程环境的使用,理解系统调用的本质。尽管部分读者抱怨字体小或排版紧凑,但均认为这是为了保持书籍轻便、便于随时查阅,体现了作者对读者体验的另一种关怀,即高效获取知识。
精彩摘录
  • ""相对于#define语句来说,它的优势在于常量值可以自动生成。尽管可以声明enum类型的变量,但编译器不检查这种类型的变量中存储的值是否为该枚举的有效值。不过,枚举变量提供这种检查,因此枚举比#define更具优势。此外,调试程序可以以符号形式打印出枚举变量的值";"
  • "If a name that has not been previously declared occurs in an expression and is followed by a left parenthesis, it is declared by context to be a function name, the function is assumed to return an int, and nothing is assumed about its arguments. Furthermore, if a function declaration does not includ"
  • "float类型通常是32位,它至少有6位有效数字,取值范围一般在10^-38 ~ 10 ^ 38之间"
  • "BCPL and B are "typeless" languages. By contrast, C provides a variety of data types. The fundamental types are characters, and integers and floating-point numbers of several sizes. In addition, there is a hierarchy of derived data types created with pointers, arrays, structures, and unions. Express"
  • "Right shifting a signed quantity will fill sign bits ("arithmetic shift") or on some machines ans with 0-bits ("logical shift") on others"
  • "Declaring the argument x to be unsigned ensures that when it is right-shifted, vacated bits will be filled with zeros, not sign bits, regardless of the machine the program run on."
  • "char *fgets(char *line, int maxline, FILE *fp) fgets reads the next input line (including the newline) from file fp into the character array line; at most maxline-1 characters will be read. The resulting line is terminated with '\0'. Normally fgets returns line; on end of file or error it returns NU"
  • "void *realloc(void *p, size_t size) realloc changes the size of the object pointed to by p to size. The contents will be unchanged up to the minimum of the old and new sizes. If the new size is larger, the new space is uninitialized. realloc returns a pointer to the new space, or NULL if the request"
目录
Preface
Preface to the Edition
Introduction
Chapter 1.A Tutorial Introduction
Chapter 2.Types, Operators, and Expressions

显示全部
用户评论
很薄,但薄的让人敬佩~现在将计算机语言的需要向其借鉴啊~
当年在大四学长的旧书摊上 10 块钱买下,现在看来就像是在山洞里捡了一本武功秘籍,还是练心法内功的……
大一在旧书店买的,果然是本好书,带领我走向了程序猿的不归路...
Less is more~
字体太小
拿书本学编程,扯蛋。
p44 两个类型转换的例子,p104两种字符串常量的区别,p155 variable-length argument lists,第八章的几个例子,包括p187的malloc比较有趣。
C 语言入门最佳书籍之一
06年时在图书包馆借读过,还是铜版纸!现在想找,找不到啊!!!
求书
收藏