C语言程序设计:现代方法(第2版•修订版)

[美] K.N.金

出版时间

2021-07-01

ISBN

9787115565198

评分

★★★★★

标签

编程

书籍介绍

◎ 本书特色

近30年来珍宝级C语言入门经典,累计印数10万+,豆瓣评分9.3分

哈佛、麻省理工、斯坦福等诸多名校C语言教材

基于C1X标准全新升级

浙江大学教授翁恺、哈尔滨工业大学教授苏小红、Boolan首席咨询师吴咏炜、资深Linux专家宋宝华联合推荐

◎ 内容简介

时至今日,C语言仍然是计算机领域的通用语言之一,但今天的C语言已经和最初的时候大不相同了。本书主要目的就是通过一种“现代方法”来介绍C语言,书中强调标准C,强调软件工程,不再强调“手工优化”。第2版修订版中不仅有C99中的新特性,还与时俱进地增加了C11和C18中的内容。本书分为C语言的基础特性、C语言的高级特性、C语言标准库和参考资料4个部分。每章末尾的“问与答”部分给出一系列与该章内容相关的问题及答案,此外还包含适量的习题。

◎ 名人推荐

C语言已经有近50年的历史了。在中国,超过95%的大学用C语言作为入门编程语言,但也因此把C语言当作一种学习编程的教学媒介语言来教,使得学生只学到了其中的基础部分,而对C语言近30年的发展及其在工业中的应用所知甚少。本书是难得的真正讲述C语言的教材,覆盖了C99、C11、C18标准的内容。本书非常适合今后会用C语言来做嵌入式系统、设备驱动和操作系统等产品开发的人士学习。在浙江大学,我们在工程实践课程中使用了本书的上一个版本,收获了良好的教学效果。

——翁恺,浙江大学计算机学院教授

书如其名,本书以一种崭新的视角和通俗易懂的方式,来向读者介绍C语言的“现代方法”,聚焦程序设计的核心问题和方法,给C语言这门经久不衰、老而弥坚的语言赋予了崭新的面貌。本书介绍了C99和C1X的许多新特性,而且编排方式方便读者查阅。本书用现代的视角来解读C语言,每章后面的“问与答”也很贴心,适时地解答了读者在阅读过程中可能会遇到的很多疑难问题。本书内容特别适合具备一定语言基础,想深入了解C语言精髓的读者,我相信这本书一定会受到读者的欢迎,成为C语言爱好者提升内功的一本武林秘笈。

——苏小红,哈尔滨工业大学教授、博士生导师,省级教学名师

本书讨论了C语言的所有特性,从C89一直贯穿到C18。内容足够新,也足够全面,这就是它的突出特色。

——吴咏炜,Boolan首席咨询师

本书是C语言程序设计的经典图书,本次修订版增加了C1X的内容,并就C1X与之前的C89、C99进行了比对,做到了与时俱进。本书更是新增了第28章,重点介绍了C1X的多线程特性,相信对读者会有巨大的帮助。读者通过阅读本书,可深入理解C89、C99和C1X的演进,并进一步思考C语言为什么这么演进,这对提高自身的思维能力以及对软件工程问题的认知都会有帮助。

——宋宝华,资深Linux专家

AI导读
核心看点
  • 近30年C语言入门经典,累计印数超10万,获名校广泛采用。
  • 基于C1X标准升级,涵盖C99、C11及C18新特性与标准库。
  • 强调软件工程与现代方法,每章含问与答及习题,构建知识体系。
适合谁读
  • 具备一定编程基础,希望深入理解C语言标准与工程实践的学习者。
  • 从事嵌入式系统、设备驱动或操作系统开发的工程师。
  • 高校计算机专业学生,特别是需要系统复习C语言知识的人群。
读前提醒
  • 本书内容详实且深入,不适合零基础新手,建议先掌握基础语法。
  • 部分章节涉及指针与底层原理,难度较大,需耐心研读与练习。
  • 注意区分C89、C99及C1X标准的差异,关注书中对标准演进的说明。
读者共识
  • 内容全面且现代,讲解透彻,是构建C语言知识体系的优秀教材。
  • 相比C Primer Plus更侧重工程实践,但部分读者认为翻译有待优化。
  • 章节编排合理,循序渐进,适合有基础者进阶,不适合纯小白入门。

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "GCC是什么的简称? GCC最初是GNU C Compiler的简称。现在指GNU Compiler Collection 如果main函数末尾没有return语句会产生什么后果? return语句不是必需达到;如果没有return语句,程序一样会终止。在C89中,返回给操作系统的值是未定义的。在C99中,如果main函数声明中的返回类型是int,程序会向操作系统返回0;否则程序会返回一个不确定的值。 依据C标准,编译器必须用一个空格字符串替换每条注释语句。 a/**/b = 0; 会被编译器理解成: a b = 0;"
  • "int count_spaces(const char *s) { int count = 0; for (; *s != '\0'; s++) if (*s == ' ') count++; return count; }"
  • "struct node{ int node; /* data stored in the node */ struct node *next; /* pointer to the next node */ };"
  • "——在探索难以实现的问题时,问题本身的简单性只会使情况更糟。"
  • "——请别搞错:计算机处理的是数而不是符号。我们用对行为的算术化程度来衡量我们的理解力(和控制力)。"
  • "C99中以LL / ll结尾的整数常量通常是long long int类型; 在ll / LL前面或后面加上u/U表无符号;"
  • "有符号整型溢出时,程序行为未定义;无符号则有定义。"
  • "读写符号整数时,使用u/o/x: u表无符号十进制整数; o表八进制形式; x表十六进制形式; 读写短整数时,在d/o/u/x前加上h; 读写长整数时,在d/o/u/x前加上l; (C99)读写长长整数时,在d/o/u/x前加上ll;"
作者简介
作者简介 K. N. 金(K. N. King) 世界知名的计算机程序设计教育家。他拥有耶鲁大学计算机科学硕士学位,加州大学伯克利分校计算机科学博士学位,曾任教于佐治亚理工学院和佐治亚州立大学。除本书外,他还撰写了广受欢迎的著作Modula-2: A Complete Guide和Java Programming: From the Beginning。 译者简介 吕秀锋 曾任教于北京理工大学软件学院,讲授过多门计算机课程,包括“计算机基础(双语)”“C语言程序设计(双语)”“数据结构”“程序设计开发与实践”。 黄倩 河海大学计算机科学与技术系主任,兼任中国人工智能学会深度学习专委会委员、中国计算机学会多媒体技术专委会委员。博士毕业于中国科学院计算技术研究所,译有《编程珠玑(第2版)》等。
目录
第1章 C语言概述
第2章 C语言基本概念
第3章 格式化输入/输出
第4章 表达式
第5章 选择语句

显示全部
用户评论
书是好书,就是翻译得不太满意,好几处都不通顺。
非常适合有C语言基础的人复习和进阶使用!对于编译相关的关键字和宏定义讲述非常清晰,有编程技巧,也有理论阐述。说清楚了大部分学生易错的点,尤其是static、extern、const和#define,struct和union的技巧阐述直击痛点。
个人觉得入门的话,没有c primer plus好动
相见恨晚!非科班,读过c primer plus,c和指针,都没有这个好
也许是翻译问题吧,感觉读起来语言非常奇怪,我也不是很喜欢把难的知识点分散到不同章节的讲述方式
好的离谱
下载
收藏