《C和指针(英文版)》
Chapter 1: A Quick Start
1.1 Introduction
1.2 Other Capabilities
1.3 Compiling
1.4 Summary
1.5 Summary of Cautions
1.6 Summary of Programming Tips
1.7 Questions
1.8 Programming Exercises
Chapter 2: Basic Concepts
2.1 Environments
2.2 Lexical Rules
2.3 Program Style
2.4 Summary
2.5 Summary of Cautions
2.6 Summary of Programming Tips
2.7 Questions
2.8 Programming Exercises
Chapter 3: Data
3.1 Basic Data Types
3.2 Basic Declarations
3.3 Typedef
3.4 Constants
3.5 Scope
3.6 Linkage
3.7 Storage Class
3.8 The Static Keyword
3.9 Scope, Linkage, and Storage Class Example
3.10 Summary
3.11 Summary of Cautions
3.12 Summary of Programming Tips
3.13 Questions
Chapter 4: Statements
4.1 Empty Statement
4.2 Expression Statement
4.3 Statement Blocks
4.4 If Statement
4.5 While Statement
4.6 For Statement
4.7 Do Statement
4.8 Switch Statement
4.9 Goto Statement
4.10 Summary
4.11 Summary of Cautions
4.12 Summary of Programming Tips
4.13 Questions
4.14 Programming Exercises
Chapter 5: Operators and Expressions
5.1 Operators
5.2 Boolean Values
5.3 L-values and R-values
5.4 Expression Evaluation
5.5 Summary
5.6 Summary of Cautions
5.7 Summary of Programming Tips
5.8 Questions
5.9 Programming Exercises
Chapter 6: Pointers
6.1 Memory and Addresses
6.2 Values and Their Types
6.3 Contents of a Pointer Variable
6.4 Indirection Operator
6.5 Uninitialized and Illegal Pointers
6.6 The Null Pointer
6.7 Pointers, Indirection, and L-values
6.8 Pointers, Indirection, and Variables
6.9 Pointer Constants
6.10 Pointers to Pointers
6.11 Pointer Expressions
6.12 Examples
6.13 Pointer Arithmetic
6.14 Summary
6.15 Summary of Cautions
6.16 Summary of Programming Tips
6.17 Questions
6.18 Programming Exercises
Chapter 7: Functions
7.1 Function Definition
7.2 Function Declaration
7.3 Function Arguments
7.4 ADTs and Black Boxes
7.5 Recursion
7.6 Variable Argument Lists
7.7 Summary
7.8 Summary of Cautions
7.9 Summary of Programming Tips
7.10 Questions
7.11 Programming Exercises
Chapter 8: Arrays
8.1 One-Dimensional Arrays
8.2 Multidimensional Arrays
8.3 Arrays of Pointers
8.4 Summary
8.5 Summary of Cautions
8.6 Summary of Programming Tips
8.7 Questions
8.8 Programming Exercises
Chapter 9: Strings, Characters, and Bytes
9.1 String Basics
9.2 String Length
9.3 Unrestricted String Functions
9.4 Length-Restricted String Functions
9.5 Basic String Searching
9.6 Advanced String Searching
9.7 Error Messages
9.8 Character Operations
9.9 Memory Operations
9.10 Summary
9.11 Summary of Cautions
9.12 Summary of Programming Tips
9.13 Questions
9.14 Programming Exercises
Chapter 10: Structures and Unions
10.1 Structure Basics
10.2 Structures, Pointers, and Members
10.3 Structure Storage Allocation
10.4 Structures as Function Arguments
10.5 Bit Fields
10.6 Unions
10.7 Summary
10.8 Summary of Cautions
10.9 Summary of Programming Tips
10.10 Questions
10.11 Programming Exercises
Chapter 11: Dynamic Memory Allocation
11.1 Why Use Dynamic Allocation
11.2 Malloc and Free
11.3 Calloc and Realloc
11.4 Using Dynamically Allocated Memory
11.5 Common Dynamic Memory Errors
11.6 Memory Allocation Examples
11.7 Summary
11.8 Summary of Cautions
11.9 Summary of Programming Tips
11.10 Questions
11.11 Programming Exercises
Chapter 12: Using Structures and Pointers
12.1 Linked Lists.
12.2 Singly Linked Lists
12.3 Doubly Linked Lists
12.4 Summary
12.5 Summary of Cautions
12.6 Summary of Programming Tips
12.7 Questions
12.8 Programming Exercises
Chapter 13: Advanced Pointer Topics
13. l More Pointers to Pointers
13.2 Advanced Declarations
13.3 Pointers to Functions
13.4 Command Line Arguments
13.5 String Literals
13.6 Summary
13.7 Summary of Cautions
13.8 Summary of Programming Tips
13.9 Questions
13.10 Programming Exercises
Chapter 14: The Preprocessor
14.1 Predefined Symbols
14.2 #define
14.3 Conditional Compilation
14.4 File Inclusion
14.5 Other Directives
14.6 Summary
14.7 Summary of Cautions
14.8 Summary of Programming Tips
14.9 Questions
14.10 Programming Exercises
Chapter 15: Input/Output Functions
15.1 Error Reporting
15.2 Terminating Execution
15.3 The Standard FO Library
15.4 ANSI FO Concepts
15.5 Overview of Stream I/O
15.6 Opening Streams
15.7 Closing Streams
15.8 Character FO
15.9 Unformatted Line FO
15.10 Formatted Line I/O
15.11 Binary I/O
15.12 Hushing and Seeking Functions
15.13 Changing the Buffering
15.14 Stream Error Functions
15.15 Temporary Files
15.16 File Manipulation Functions
15.17 Summary
15.18 Summary of Cautions
15.19 Surfimary of Programming Tips
15.20 Questions
15.21 Programming Exercises
Chapter 16: Standard Library
16.1 Integer Functions
16.2 Floating-Point Functions
16.3 Date and Time Functions
16.4 Nonlocal Jumps [setjmp.h]
16.5 Signals
16.6 Printing Variable Argument Lists [stdarg.h]
16.7 Execution Environment
16.8 Sorting and Searching [stdlib.h]
16.9 Locales
16.10 Summary
16.11 Summary of Cautions
16.12 Summary of Programming Tips
16.13 Questions
16.14 Programming Exercises
Chapter 17: Classic Abstract Data Types
17.1 Memory Allocation
17.2 Stacks
17.3 Queues
17.4 Trees
17.5 Improvements in Implementation
17.6 Summary
17.7 Summary of Cautions
17.8 Summary of Programming Tips
17.9 Questions
17.10 Programming Exercises
Chapter 18: Runtime Environment
18.1 Determining the Runtime Environment
18.2 Interfacing With Assembly Language
18.3 Runtime Efficiency
18.4 Summary
18.5 Summary of Cautions
18.6 Summary of Programming Tips
18.7 Questions
18.8 Programming Exercises
Appendix: Selected Problem Solutions