C语言经典教程:英文第二版详解

需积分: 13 3 下载量 132 浏览量 更新于2024-07-17 收藏 1.31MB PDF 举报
《C Programming Language》英文第二版是一本经典的入门教材,专为学习C语言的学生和开发者设计。尽管是英文版本,但对于有一定英语基础的学习者来说,书中大部分词汇并不构成阅读障碍。该书从基础知识入手,通过逐步深入的方式引导读者掌握C语言的关键概念。 **章节一:教程介绍(A Tutorial Introduction)** 1.1 **入门指南** 开篇部分引导学生如何开始学习,包括如何设置环境、编写和运行简单的程序,让初学者快速上手。 1.2 **变量和算术表达式** 介绍了变量的概念以及如何使用基本的数学运算符进行计算。 1.3 **for循环** 学习控制结构的基础,通过for循环示例演示了重复执行代码块的能力。 1.4 **符号常量** 讲解如何定义和使用预定义的值,如π或e等。 1.5 **字符输入和输出** 包括文件复制、字符计数、行计数和单词计数的实践操作,强化对文件I/O的理解。 1.6 **数组** 介绍数组作为数据结构的基础,演示如何存储和操作多个值。 1.7 **函数** 阐述函数的定义、调用和参数传递方式,以及call-by-value策略。 1.8 **字符数组** 探索字符数组的使用,扩展字符串处理能力。 1.9 **外部变量和作用域** 讨论变量的作用域规则,理解何时何地可以访问特定变量。 **章节二:类型、运算符和表达式** 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.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和标签** 提供更精细的控制,但通常被认为不推荐在现代C编程中使用。 **章节四:函数和程序结构** 4.1 **函数的定义和调用** 详细解释如何封装功能和复用代码。 4.2 **程序组织** 如何将函数组合成模块化的程序结构。 4.3 **参数传递** 深入理解如何传递和管理函数内的局部变量。 4.4 **指针** C语言中的核心概念,理解如何间接访问和操作内存地址。 《C Programming Language》第二版提供了一个系统的学习路径,从基础语法到高级控制结构,帮助读者逐步建立起扎实的C语言编程技能。通过实际操作和理论结合,学习者能够熟练掌握这门语言,并为进一步的软件开发打下坚实基础。
2009-01-12 上传
The C programming Language 第二版英文版 內容列表 Table of Contents Preface.......................................................... Preface to the first edition..................................... Introduction..................................................... Chapter 1 - A Tutorial Introduction.............................. 1.1 Getting Started................................ 1.2 Variables and Arithmetic Expressions........... 1.3 The for statement.............................. 1.4 Symbolic Constants............................. 1.5 Character Input and Output..................... 1.5.1 File Copying.......................... 1.5.2 Character Counting.................... 1.5.3 Line Counting......................... 1.5.4 Word Counting......................... 1.6 Arrays......................................... 1.7 Functions...................................... 1.8 Arguments - Call by Value...................... 1.9 Character Arrays............................... 1.10 External Variables and Scope.................. Chapter 2 - Types, Operators and Expressions..................... 2.1 Variable Names................................. 2.2 Data Types and Sizes........................... 2.3 Constants...................................... 2.4 Declarations................................... 2.5 Arithmetic Operators........................... 2.6 Relational and Logical Operators............... 2.7 Type Conversions............................... 2.8 Increment and Decrement Operators.............. 2.9 Bitwise Operators.............................. 2.10 Assignment Operators and Expressions.......... 2.11 Conditional Expressions....................... 2.12 Precedence and Order of Evaluation............ Chapter 3 - Control Flow......................................... 3.1 Statements and Blocks.......................... 3.2 If-Else........................................ 3.3 Else-If........................................ 3.4 Switch......................................... 3.5 Loops - While and For.......................... 3.6 Loops - Do-While............................... 3.7 Break and Continue............................. 3.8 Goto and labels................................ Chapter 4 - Functions and Program Structure...................... 4.1 Basics of Functions............................ 4.2 Functions Returning Non-integers............... 4.3 External Variables............................. 4.4 Scope Rules.................................... 4.5 Header Files................................... 4.6 Static Variables................................ 4.7 Register Variables.............................. 4.8 Block Structure................................. 4.9 Initialization.................................. 4.10 Recursion...................................... 4.11 The C Preprocessor............................. 4.11.1 File Inclusion........................ 4.11.2 Macro Substitution.................... 4.11.3 Conditional Inclusion................. Chapter 5 - Pointers and Arrays.................................. 5.1 Pointers and Addresses......................... 5.2 Pointers and Function Arguments................ 5.3 Pointers and Arrays............................ 5.4 Address Arithmetic............................. 5.5 Character Pointers and Functions............... 5.6 Pointer Arrays; Pointers to Pointers........... 5.7 Multi-dimensional Arrays....................... 5.8 Initialization of Pointer Arrays............... 5.9 Pointers vs. Multi-dimensional Arrays.......... 5.10 Command-line Arguments........................ 5.11 Pointers to Functions......................... 5.12 Complicated Declarations...................... Chapter 6 - Structures........................................... 6.1 Basics of Structures........................... 6.2 Structures and Functions....................... 6.3 Arrays of Structures........................... 6.4 Pointers to Structures......................... 6.5 Self-referential Structures.................... 6.6 Table Lookup................................... 6.7 Typedef........................................ 6.8 Unions......................................... 6.9 Bit-fields..................................... Chapter 7 - Input and Output..................................... 7.1 Standard Input and Output....................... 7.2 Formatted Output - printf....................... 7.3 Variable-length Argument Lists.................. 7.4 Formatted Input - Scanf......................... 7.5 File Access..................................... 7.6 Error Handling - Stderr and Exit................ 7.7 Line Input and Output........................... 7.8 Miscellaneous Functions......................... 7.8.1 String Operations...................... 7.8.2 Character Class Testing and Conversion. 7.8.3 Ungetc................................. 7.8.4 Command Execution...................... 7.8.5 Storage Management..................... 7.8.6 Mathematical Functions................. 7.8.7 Random Number generation............... Chapter 8 - The UNIX System Interface............................ 8.1 File Descriptors............................... 8.2 Low Level I/O - Read and Write................. 8.3 Open, Creat, Close, Unlink..................... 8.4 Random Access - Lseek.......................... 8.5 Example - An implementation of Fopen and Getc.. 8.6 Example - Listing Directories.................. 8.7 Example - A Storage Allocator.................. Appendix A - Reference Manual.................................... A.1 Introduction................................... A.2 Lexical Conventions............................ A.2.1 Tokens................................ A.2.2 Comments.............................. A.2.3 Identifiers........................... A.2.4 Keywords.............................. A.2.5 Constants............................. A.2.6 String Literals....................... A.3 Syntax Notation................................ A.4 Meaning of Identifiers......................... A.4.1 Storage Class......................... A.4.2 Basic Types........................... A.4.3 Derived types......................... A.4.4 Type Qualifiers....................... A.5 Objects and Lvalues............................ A.6 Conversions.................................... A.6.1 Integral Promotion.................... A.6.2 Integral Conversions.................. A.6.3 Integer and Floating.................. A.6.4 Floating Types........................ A.6.5 Arithmetic Conversions................ A.6.6 Pointers and Integers................. A.6.7 Void.................................. A.6.8 Pointers to Void...................... A.7 Expressions.................................... A.7.1 Pointer Conversion.................... A.7.2 Primary Expressions................... A.7.3 Postfix Expressions................... A.7.4 Unary Operators....................... A.7.5 Casts................................. A.7.6 Multiplicative Operators.............. A.7.7 Additive Operators.................... A.7.8 Shift Operators....................... A.7.9 Relational Operators.................. A.7.10 Equality Operators................... A.7.11 Bitwise AND Operator................. A.7.12 Bitwise Exclusive OR Operator........ A.7.13 Bitwise Inclusive OR Operator........ A.7.14 Logical AND Operator................. A.7.15 Logical OR Operator.................. A.7.16 Conditional Operator................. A.7.17 Assignment Expressions............... A.7.18 Comma Operator.......................... A.7.19 Constant Expressions.................... A.8 Declarations..................................... A.8.1 Storage Class Specifiers................. A.8.2 Type Specifiers.......................... A.8.3 Structure and Union Declarations......... A.8.4 Enumerations............................. A.8.5 Declarators.............................. A.8.6 Meaning of Declarators................... A.8.7 Initialization........................... A.8.8 Type names............................... A.8.9 Typedef.................................. A.8.10 Type Equivalence........................ A.9 Statements....................................... A.9.1 Labeled Statements....................... A.9.2 Expression Statement..................... A.9.3 Compound Statement....................... A.9.4 Selection Statements..................... A.9.5 Iteration Statements..................... A.9.6 Jump statements.......................... A.10 External Declarations........................... A.10.1 Function Definitions.................... A.10.2 External Declarations................... A.11 Scope and Linkage............................... A.11.1 Lexical Scope........................... A.11.2 Linkage................................. A.12 Preprocessing................................... A.12.1 Trigraph Sequences...................... A.12.2 Line Splicing........................... A.12.3 Macro Definition and Expansion.......... A.12.4 File Inclusion.......................... A.12.5 Conditional Compilation................. A.12.6 Line Control............................ A.12.7 Error Generation........................ A.12.8 Pragmas................................. A.12.9 Null directive.......................... A.12.10 Predefined names....................... A.13 Grammar......................................... Appendix B - Standard Library.................................... B.1.1 File Operations................................ B.1.2 Formatted Output......................... B.1.3 Formatted Input.......................... B.1.4 Character Input and Output Functions..... B.1.5 Direct Input and Output Functions........ B.1.6 File Positioning Functions............... B.1.7 Error Functions.......................... B.2 Character Class Tests: ................. B.3 String Functions: ..................... B.4 Mathematical Functions: ................. B.5 Utility Functions: ....................