The C Programming Language(第 2 版) 笔记 / 目录

参考文献:The C Programming Language


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 类型定义(typedef)

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 参考手册

A.1 引言

A.2 词法规则

  • A.2.1 记号
  • A.2.2 注释
  • A.2.3 标识符
  • A.2.4 关键宇
  • A.2.5 常量
  • A.2.6 字符串字面值

A.3 语法符号

A.4 标识符的含义

  • A.4.1 存储类
  • A.4.2 基本类型
  • A.4.3 派生类型
  • A.4.4 类型限定符

A.5 对象和左值

A.6 转换

  • A.6.1 整型提升
  • A.6.2 整型转换
  • A.6.3 整数和浮点数
  • A.6.4 浮点类型
  • A.6.5 算术类型转换
  • A.6.6 指针和整数
  • A.6.7 void
  • A.6.8 指向 void 的指针

A.7 表达式

  • A.7.1 指针生成
  • A.7.2 初等表达式
  • A.7.3 后缀表达式
  • A.7.4 一元运算符
  • A.7.5 强制类型转换
  • A.7.6 乘法类运算符
  • A.7.7 加法类运算符
  • A.7.8 移位运算符
  • A.7.9 关系运算符
  • A.7.10 相等类运算符
  • A.7.11 按位与运算符
  • A.7.12 按位异或运算符
  • A.7.13 按位或运算符
  • A.7.14 逻辑与运算符
  • A.7.15 逻辑或运算符
  • A.7.16 条件运算符
  • A.7.17 赋值表达式
  • A.7.18 逗号运算符
  • A.7.19 常量表达式

A.8 声明

  • A.8.1 存储类说明符
  • A.8.2 类型说明符
  • A.8.3 结构和联合声明
  • A.8.4 枚举
  • A.8.5 声明符
  • A.8.6 声明符的含义
  • A.8.7 初始化
  • A.8.8 类型名
  • A.8.9 typedef
  • A.8.10 类型等价

A.9 语句

  • A.9.1 带标号语句
  • A.9.2 表达式语句
  • A.9.3 复合语句
  • A.9.4 选择语句
  • A.9.5 循环语句
  • A.9.6 跳转语句

A.10 外部声明

  • A.10.1 函数定义
  • A.10.2 外部声明

A.11 作用域与连接

  • A.11.1 词法作用域
  • A.11.2 连接

A.12 预处理

  • A.12.1 三字符序列
  • A.12.2 行连接
  • A.12.3 宏定义和扩展
  • A.12.4 文件包含
  • A.12.5 条件编译
  • A.12.6 行控制
  • A.12.7 错误信息生成
  • A.12.8 pragma
  • A.12.9 空指令
  • A.12.10 预定义名字

A.13 语法

附录 B 标准库

B.1 输入与输出:<stdio.h>

  • B.1.1 文件操作
  • B.1.2 格式化输出
  • B.1.3 格式化输入
  • B.1.4 字符输入/输出函数
  • B.1.5 直接输入/输出函数
  • B.1.6 文件定位函数
  • B.1.7 错误处理函数

B.2 字符类别测试:<ctype.h>

B.3 字符串函数:<string.h>

B.4 数学函数:<math.h>

B.5 实用函数:<stdlib.h>

B.6 诊断:<assert.h>

B.7 可变参数表:<stdarg.h>

B.8 非局部跳转:<setjmp.h>

B.9 信号:<signal.h>

B.10 日期与时间函数:<time.h>

B.11 与具体实现相关的限制:<limits.h>和<float.h>

附录 C 变更小结

索引


参考文献:The C Programming Language

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: ....................
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值