The C Programming Language
Chapter Checklist
- 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 Got 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
- 49 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 Ex
- 7.7 Line Input and Output
- 7.8 Miscellaneous Functions
- 7.8.1 String Operations
- 7.8.2 Character Class Testing and Conversior
- 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 Input and Output:
<stdio.h>
- 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:
<ctype.h>
- B.3 String Functions:
<string.h>
- B.4 Mathematical Functions:
<math.h>
- B.5 Utility Functions:
<stdlib.h>
- B.6 Diagnostics:
<assert.h>
- B.7 Variable Argument Lists:
<stdarg.h>
- B.8 Non-local Jumps:
<setjmp.h>
- B.9 Signals:
<signal.h>
- B.10 Date and Time Functions:
<time.h>
- B.11 Implementation-defined Limits:
<limits.h>
and<float.h>
- B.1 Input and Output:
Backlinks
Computer Science Books
- [[the-c-programming-language]]
dhruv's wiki
- [[the-c-programming-language]]