Second Edition
Brian W. Kernighan and Dennis M. Ritchie
CONTENTS
- 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.6 arrays
- 1.7 functions
- 1.8 arguments - call by value
- 1.9 character arrays
- 1.10 external variables and scope
- 2.1 variable
- 2.2 data types and sizes
- 2.3 constants
- 2.4 declarations
- 2.5 arithmetic operators
- 2.6 ralational and logical operators
- 2.7 type conversions
- 2.8 increment and decrement
- 2.9 bitwise operators
- 2.10 assignment operators
- 2.11 conditional expressions
- 2.12 precedence and order of evaluation
- 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
- 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 structures
- 4.9 initialization
- 4.10 recursion
- 4.11 the c preprocessor
- 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 and pointers to pointers
- 5.7 multi-dimensional arryas
- 5.8 initialization of pointer arrays
- 5.9 pointer vs multi-dimensional arrays
- 5.10 command-line arguments
- 5.11 pointers to functions
- 5.12 complicated declarations
- 6.1 basics of structures
- 6.2 structures and functions
- 6.3 arrays of structures
- 6.4 pointers to structures
- 6.5 self-referencial structures
- 6.6 table lookup
- 6.7 typedef
- 6.8 unions
- 6.9 bit-fields
- 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 miscellanesous functions
- 8.1 file descriptors
- 8.2 low level I/O - read and write
- 8.3 open, creat, close and 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