logo资料库

The C Programming Language(C 语言程序设计), 2nd Edition, 中文版.pdf

第1页 / 共296页
第2页 / 共296页
第3页 / 共296页
第4页 / 共296页
第5页 / 共296页
第6页 / 共296页
第7页 / 共296页
第8页 / 共296页
资料共296页,剩余部分请下载后查看
封面
中文版序
译者序
第一版序
引言
目录
第1章 导言
1.1 入门
1.2 变量与算术表达式
1.3 for语句
1.4 符号常量
1.5 字符输入/输出
1.6 数组
1.7 函数
1.8 参数 --传值调用
1.9 字符数组
1.10 外部变量与作用域
第2章 类型、运算符与表达式
2.1 变量名
2.2 数据类型及长度
2.3 常量
2.4 声明
2.5 算术运算符
2.6 关系运算符与逻辑运算符
2.7 类型转换
2.8 自增运算符与自减运算符
2.9 按位运算符
2.10 赋值运算符与表达式
2.11 条件表达式
2.12 运算符优先级与求值次序
第3章 控制流
3.1 语句与程序块
3.2 if-else语句
3.3 else-if语句
3.4 switch语句
3.5 while循环与for循环
3.6 do-while循环
3.7 break语句与continue语句
3.8 goto语句与标号
第4章 函数与程序结构
4.1 函数的基本知识
4.2 返回非整型值的函数
4.3 外部变量
4.4 作用域规则
4.5 头文件
4.6 静态变量
4.7 寄存器变量
4.8 程序块结构
4.9 初始化
4.10 递归
4.11 C预处理器
第5章 指针与数组
5.1 指针与地址
5.2 指针与函数参数
5.3 指针与数组
5.4 地址算术运算
5.5 字符指针与函数
5.6 指针数组以及指向指针的指针
5.7 多维数组
5.8 指针数组的初始化
5.9 指针与多维数组
5.10 命令行参数
5.11 指向函数的指针
5.12 复杂声明
第6章 结构
6.1 结构的基本知识
6.2 结构与函数
6.3 结构数组
6.4 指向结构的指针
6.5 自引用结构
6.6 表查找
6.7 类型定义
6.8 联合
6.9 位字段
第7章 输入与输出
7.1 标准输入/输出
7.2 格式化输出 --printf函数
7.3 变长参数
7.4 格式化输入 --scanf函数
7.5 文件访问
7.6 错误处理 --stderr和exit
7.7 行输入和行输出
7.8 其它函数
第8章 UNIX系统接口
8.1 文件描述符
8.2 低级I/O --read和write
8.3 open、creat、close和unlink
8.4 随机访问 --lseek
8.5 实例 --fopen和getc函数的实现
8.6 实例 --目录列表
8.7 实例 --存储分配程序
附录A 参考手册
附录B 标准库
附录C 变更小结
索引
本书是由 C 语言的设计者 Brian W. Kernighan和 Dennis M. Ritchie 编写的一部介绍标准 C 语言及其程序设计方法的权威性经典著作。全面、系统地讲述了 C 语言的各个特性及程序设 计的基本方法,包括基本概念、类型和表达式、控制流、函数与程序结构、指针与数组、结 构、输入与输出、UNlX 系统接口、标准库等内容。本书的讲述深入浅出,配合典型例证,通 俗易懂,实用性强,适合作为大专院校计算机专业或非计算机专业的 C 语言教材,也可以作 为从事计算机相关软硬件开发的技术人员的参考书。 Authorized translation from the English language edition entitled The C Programming Language, Second Edition, ISBN: 0-13-110362-8 by Brian W. Kernighan and Dennis M. Ritchie, published hy Pearson Education, Inc, publishing as Prentice Hall PTR, Copyright © 1988, 1978 by Bell Telephone Laboratories, Incorporated. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanic, including photocopying, recording, or by any information storage retrieval system, without permisson of Pearson Education, Inc. CHNESE SIMPLIFIED language edition published by China Machine Press. Copyright © 2004 by China Machine Press. 本书中文简体字版由美国 Pearson Edecation 培生教育出版集团授权机械工业出版社独家 出版。未经出版者书面许可,不得以任何方式复制或抄袭本书内容。 版权所有,侵权必究。 本书版权登记号:图字:01-1999-2347 图书在版编目(CIP)数据 C 程序设语言/(美)克尼汉(Kernighan, B. W. )(美)里奇(Ritchie, D. M. )著;徐宝 文,李志译,2 版—北京:机诫工业出版社,2004.1 (计算机科学丛书) 书名原文:The C Programming Language ISBN 7-111-12806-0 I. C… Ⅱ. ①克… ②里… ③徐… ④李… Ⅲ. C 语言—程序设计 Ⅳ. TP312 中国版本同书馆 CIP 数据核字(2003)第 092753 号 机械工业出版社(北京市西城区百万庄大街 22 号 邮政编码 100037) 责任编辑:温莉芳 北京瑞德印刷有限公司印刷•新华书店北京发行所发行 2004 年 1 月第 2 版•2004 年 3 月第 3 次印刷 787mm×1092mm 1/16•17.5 印张 印数:8001-11000 册 定价:30.00 元 凡购本书,如有倒页、脱页、缺页,由本社发行部调换 本社购书热线电话:(010)68326294
出版者的话 文艺复兴以降,源远流长的科学精神和逐步形成的学术规范,使西方国家在自然科学的 各个领域取得了垄断性的优势;也正是这样的传统,使美国在信息技术发展的六十多年间名 家辈出、独领风骚。在商业化的进程中,美国的产业界与教育界越来越紧密地结合,计算机 学科中的许多泰山北斗同时身处科研和教学的最前线,由此而产生的经典科学著作,不仅擘 划了研究的范畴,还揭橥了学术的源变,既遵循学术规范,又自有学者个性,其价值并不会 因年月的流逝而减退。 近年,在全球信息化大潮的推动下,我国的计算机产业发展迅猛,对专业人才的需求日 益迫切。这对计算机教育界和出版界都既是机遇,也是挑战;而专业教材的建设在教育战略 上显得举足轻重。在我国信息技术发展时间较短、从业人员较少的现状下,美国等发达国家 在其计算机科学发展的几十年间积淀的经典教材仍有许多值得借鉴之处。因此,引进一批国 外优秀计算机教材将对我同计算机教育事业的发展起积极的推动作用,也是与世界接轨、建 设真正的世界一流大学的必由之路。 机械工业出版社华章图文信息有限公司较早意识到“出版要为教育服务”。自 1998 年开始, 华章公司就将工作重点放在遴选、移译国外优秀教材上。经过几年的不懈努力,我们与 Prentice Hall,Addison-Wesley,McGraw-Hill,Morgan Kaufmann 等世界著名出版公司建立了良好的合 作关系,从它们现有的数百种教材中甄选出 Tanenbaum,Stroustrup,Kerhighan,Jim Gray 等 大师名家的一批经典作品,以“计算机科学丛书”为总称出版,供读者学习、研究及广支藏。大 理石纹理的封面,也正体现了这套从书的品位和格调。 “计算机科学丛书”的出版工作得到了国内外学者的鼎力襄助,国内的专家不仅提供了中肯 的选题指导,还不辞劳苦地担任了翻译和审校的工作;而原书的作者也相当关注其作品在中 国的传播,有的还专诚为其书的中译本作序。迄今,“计算机科学丛书”已经出版了近百个品种, 这些书籍在读者中树立了良好的口碑,并被许多高校采用为正式教材和参考书籍,为进一步 推广与发展打下了坚实的基础。 随着学科建设的初步完善和教材改革的逐渐深化,教育界对国外计算机教材的需求和应 用都步入一个新的阶段。为此,华章公司将加大引进教材的力度,在“华章教育”的总规划之下 出版三个系列的计算机教材;除“计算机科学丛书”之外,对影印版的教材,则单独开辟出“经 典原版书库”;同时,引进全美通行的教学辅导书“Schaum’s Outlines ”系列组成“全美经典学习 指导系列”。为了保证这三套丛书的权威性,同时也为了更好地为学校和老师们服务,华章公 司聘请了中国科学院、北京大学、清华大学、国防科技大学、复旦大学、上海交通大学、南 京大学、浙江大学、中国科技大学、哈尔滨工业大学、西安交通大学、中国人民大学、北京 航空航天大学、北京邮电大学、中山大学、解放军理工大学、郑州大学、湖北工学院、中国 国家信息安全测评认证中心等国内重点大学和科研机构在计算机的各个领域的著名学者组成 “专家指导委员会”,为我们提供选题意见和出版监督。 这三套丛书是响应教育部提出的使用外版教材的号召,为国内高校的计算机及相关专业 的教学度身订造的。其中许多教材均已为 M.I.T.,Stanford,U.C. Berkeley,C.M.U.等世界名牌 大学所采用。不仅涵盖了程序设计、数据结构、操作系统、计算机体系结构、数据库、编译 原理、软件工程、图形学、通信与网络、离散数学等国内大学计算机专业普遍开设的核心课
程,而且各具特色——有的出自语言设计者之手、有的历经三十年而不衰、有的已被全世界 的几百所高校采用。在这些圆熟通博的名师大作的指引之下,读者必将在计算机科学的宫殿 中由登堂而入室。 权威的作者、经典的教材、一流的译者、严格的审校、精细的编辑,这些因素使我们的 图书有了质量的保证,但我们的目标是尽善尽美,而反馈的意见正是我们达到这一终极目标 的重要帮助。教材的出版只是我们的后续服务的起点。华章公司欢迎老师和读者对我们的工 作提出建议或给予指正,我们的联系方法如下: 电子邮件:hzedu@hzbook.com 联系电话:(010)68995264 联系地址:北京市西城区百万庄南街 1 号 邮政编码:100037
专家指导委员会 (按姓氏笔画顺序) 尤晋元 石教英 张立昂 邵维忠 周克定 郑国梁 高传善 裘宗 王珊 吕建 李伟琴 陆丽娜 周傲英 施伯乐 梅宏 戴葵 冯博琴 孙玉芳 李师贤 陆鑫达 孟小峰 钟玉琢 程旭 史忠植 吴世忠 李建中 陈向群 岳丽华 唐世渭 程时端 史美林 吴时霖 杨冬青 周伯生 范 明 袁崇义 谢希仁
Preface to the Chinease Edition Since its original design and implementation by Dennis Ritchie in 1973, the C programming language has spread fat beyond its origins at Bell Labs. It has become the common language for programmers throughout the world, and has given birth to two other major languages, C++ and Java, that build on its syntax and basic structure. C and its derivatives are the base upon which much of the world’s software rests. The spread of C required actionto describe the language itself completely, and to accommodate changes in the way it was being used. In 1988, the American National Standards Institute (ANSI) created a precise standard for C that preserved its expressiveness, efficiency, small size, and ultimate control over the machine, while at the same time providing assurance that programs conforming to the standard would be portable without change from one computer and operating system to another. This standard was also accepted as an international standard under the auspices of the International Standards Organization (ISO), and thus brought the benefits of standardization to a worldwide user community. The standards committee was aware of the multi-national use of the C language, and thus provided, both in the language itself and in the library, support for “wide characters”, which are needed to represent text in Chinese as well as other languages that do not use the Roman character set. In spite of these evolutionary changes, C remains as it was from its inception, a compact and efficient tool for programmers of all backgrounds. The C language, and also the Unix technology from which it grew, have been present in China for many years ,as we know from visits to universities and the Chinese Academy of Sciences. Students’ learning has always been made more difficult by the lack of an authoritativ translation of the material describing this work into a form convenient for study in China. We are delighted that Professor Xu has made this Chinese translation of “The C programming Language” available so that C will be more readily accessible to our colleagues in the People’s Republic of China. Brian W. Kernighan Dennis M. Ritchie
中文版序 C 程序设计语言最早是由 Dennis Ritchie 于 1973 年设计并实现的。从那时开始,C 语言已 经从其位于贝尔室验室的发源地传播到世界各地。它已经成为全球程序员的公共语言。并由 此诞生了两个新的主流语言 C++与 Java——它们都建立在 C 语言的语法扣基本结构的基础上。 现在世界上的许多软件都是在 C 语言及其衍生的各种语言的基础上开发出来的。 C 语言的传播需要我们对语言加以完整的描连,并适应它在使用过程中所进行的一些变 化。1988 年,美国国家标准协会(ANSI)为 C 语言指定了一个精确的标准,该标准保持了 C 的表达能力、效率、小规模以及对机器的最终控制,同时还保证符合标准的程序可以从一种 计算机与操作系统移植到另一种计算机与操作系统而无需改变。这个标准同时也被国际标准 化组织(ISO)接受为国际标准,使世界各地的用户团体部受益于这一标准。 标准委员会考虑到 C 语言在多民族使用的情况,在语言本身以及库中都提供了对“宽字符” 的支特,这是以中文以及其他不使用罗马字符集的话言来表示主文所需要的。 除了这些渐进的变化外,C 仍保持着它原来的样子——具有各种背景的程序员的一种紧凑 而有效的工具。 在我们访问中国的大学和中国科学院时,我们获悉,C 语言以及基于它发展起来的 UNIX 技术引入中国已经有很事年了,由于缺少把描述这一工作的素材翻译成在中国易于学习的形 式的权威译本,学生们在学习时遇到了许多固难。我们欣喜地看到徐宝文教授完成《C 程序设 计语言》的中译本,我们希望它的出版有助于我们在中华人民共和国的同行更客易地理解 C 语言。 Brian W. Kernighan Dennis M. Ritchie
分享到:
收藏