C编程语言基础教程概览

需积分: 10 11 下载量 63 浏览量 更新于2024-07-28 收藏 3.57MB PDF 举报
“The_C_Programming_Language-英文版”是一本介绍C编程语言的经典教程。这本书由Brian W. Kernighan和Dennis M. Ritchie撰写,旨在引导初学者逐步掌握C语言的基础概念和编程技巧。 本书首先从序言开始,介绍了第一版的初衷。第一章“教程介绍”是学习C语言的入门,包括以下几个关键知识点: 1. 开始编程:讲解如何设置开发环境并编写第一个简单的C程序。 2. 变量与算术表达式:阐述变量的概念,以及如何进行基本的算术运算。 3. for循环:解释for循环的结构和使用方法。 4. 符号常量:介绍#define用于创建符号常量的用法。 5. 字符输入与输出:包括基本的字符I/O操作,如文件复制、字符计数、行计数和单词计数。 6. 数组:讨论一维数组的声明、初始化和操作。 7. 函数:介绍函数的定义、调用和返回值。 8. 参数传递:讲解C语言中的值传递机制。 9. 字符数组:特别讨论字符串在C语言中的处理。 10. 外部变量与作用域:解释全局变量和局部变量的区别以及作用域规则。 第二章“类型、运算符与表达式”深入探讨了C语言的核心语法: 1. 变量名:规定了变量命名的规则。 2. 数据类型与大小:介绍基本数据类型(如int、char、float等)及其存储大小。 3. 常量:涵盖了整型、浮点型和字符型常量。 4. 声明:讲解变量声明的语法。 5. 算术运算符:包括加减乘除取余等运算。 6. 关系和逻辑运算符:涉及比较和逻辑运算,如==、!=、&&、||等。 7. 类型转换:自动和强制类型转换的概念。 8. 自增自减运算符:++和--的使用。 9. 位运算符:介绍位移、按位与、按位或、按位异或等操作。 10. 赋值运算符与表达式:包括复合赋值运算符和表达式的值。 11. 条件运算符:三目运算符的用法。 12. 运算符优先级与结合性:解析运算符执行顺序的重要性。 第三章“控制流”讲解了程序的流程控制结构: 1. 语句与块:简单语句和复合语句的概念。 2. if-else:条件判断的实现。 3. else-if:多条件分支的处理。 4. switch:开关语句的使用。 5. while和for循环:两种不同类型的循环结构。 6. do-while循环:后检查循环的特性。 7. break和continue:跳出循环和跳过当前迭代的操作。 8. goto和标签:无条件跳转的使用。 第四章“函数与程序结构”进一步深入函数和程序设计: 1. 函数基础:函数定义、调用和参数传递。 2. 非整数返回类型:函数可以返回除整数之外的其他类型值。 3. 外部变量:全局变量的作用和使用。 4. 作用域规则:变量在不同代码块中的可见性。 5. 头文件:包含头文件的用途,如声明库函数。 6. 静态变量:局部变量的静态存储类型。 7. 寄存器变量:尝试将变量存储在CPU寄存器中以提高效率。 8. 块结构:代码块的组织方式。 9. 初始化:变量的默认初始化和显式初始化。 10. 递归:函数调用自身的技术。 11. 预处理器:介绍宏定义和文件包含等功能。 这本书涵盖了C语言的基础知识,适合初学者学习,同时也为有经验的程序员提供了参考资料。通过学习这些章节,读者可以构建起对C语言的全面理解,并具备编写和调试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: ....................