The C Programming Language (Second Edition), Informatyka, C, C++, C

[ Pobierz całość w formacie PDF ]
1
2
Preface
....................................................................................................................................
6
Preface to the first edition
........................................................................................................
8
Chapter 1 - A Tutorial Introduction
.........................................................................................
9
1.1 Getting Started
..............................................................................................................
9
1.2 Variables and Arithmetic Expressions
..........................................................................
11
1.3 The for statement
.........................................................................................................
15
1.4 Symbolic Constants
......................................................................................................
17
1.5 Character Input and Output
.........................................................................................
17
1.5.1 File Copying
..........................................................................................................
18
1.5.2 Character Counting
...............................................................................................
19
1.5.3 Line Counting
.......................................................................................................
20
1.5.4 Word Counting
.....................................................................................................
21
1.6 Arrays
..........................................................................................................................
23
1.7 Functions
.....................................................................................................................
25
1.8 Arguments - Call by Value
...........................................................................................
28
1.9 Character Arrays
..........................................................................................................
29
1.10 External Variables and Scope
.....................................................................................
31
Chapter 2 - Types, Operators and Expressions
.......................................................................
35
2.1 Variable Names
............................................................................................................
35
2.2 Data Types and Sizes
...................................................................................................
35
2.3 Constants
.....................................................................................................................
36
2.4 Declarations
.................................................................................................................
38
2.5 Arithmetic Operators
...................................................................................................
39
2.6 Relational and Logical Operators
.................................................................................
39
2.7 Type Conversions
........................................................................................................
40
2.8 Increment and Decrement Operators
............................................................................
43
2.9 Bitwise Operators
........................................................................................................
45
2.10 Assignment Operators and Expressions
......................................................................
46
2.11 Conditional Expressions
.............................................................................................
47
2.12 Precedence and Order of Evaluation
..........................................................................
48
Chapter 3 - Control Flow
.......................................................................................................
50
3.1 Statements and Blocks
.................................................................................................
50
3.2 If-Else
..........................................................................................................................
50
3.3 Else-If
..........................................................................................................................
51
3.4 Switch
..........................................................................................................................
52
3.5 Loops - While and For
.................................................................................................
53
3.6 Loops - Do-While
........................................................................................................
56
3.7 Break and Continue
.....................................................................................................
57
3.8 Goto and labels
............................................................................................................
57
Chapter 4 - Functions and Program Structure
........................................................................
59
4.1 Basics of Functions
......................................................................................................
59
4.2 Functions Returning Non-integers
................................................................................
61
4.3 External Variables
........................................................................................................
63
4.4 Scope Rules
.................................................................................................................
68
4.5 Header Files
.................................................................................................................
69
4.6 Static Variables
............................................................................................................
70
4.7 Register Variables
........................................................................................................
71
4.8 Block Structure
............................................................................................................
71
4.9 Initialization
.................................................................................................................
72
4.10 Recursion
...................................................................................................................
73
4.11 The C Preprocessor
....................................................................................................
74
4.11.1 File Inclusion
.......................................................................................................
75
4.11.2 Macro Substitution
..............................................................................................
75
3
4.11.3 Conditional Inclusion
..........................................................................................
77
Chapter 5 - Pointers and Arrays
.............................................................................................
78
5.1 Pointers and Addresses
................................................................................................
78
5.2 Pointers and Function Arguments
.................................................................................
79
5.3 Pointers and Arrays
......................................................................................................
81
5.4 Address Arithmetic
......................................................................................................
84
5.5 Character Pointers and Functions
.................................................................................
87
5.6 Pointer Arrays; Pointers to Pointers
.............................................................................
89
5.7 Multi-dimensional Arrays
.............................................................................................
92
5.8 Initialization of Pointer Arrays
.....................................................................................
93
5.9 Pointers vs. Multi-dimensional Arrays
..........................................................................
94
5.10 Command-line Arguments
..........................................................................................
95
5.11 Pointers to Functions
.................................................................................................
98
5.12 Complicated Declarations
.........................................................................................
100
Chapter 6 - Structures
..........................................................................................................
105
6.1 Basics of Structures
...................................................................................................
105
6.2 Structures and Functions
............................................................................................
107
6.3 Arrays of Structures
...................................................................................................
109
6.4 Pointers to Structures
.................................................................................................
112
6.5 Self-referential Structures
...........................................................................................
113
6.6 Table Lookup
............................................................................................................
117
6.7 Typedef
......................................................................................................................
119
6.8 Unions
.......................................................................................................................
120
6.9 Bit-fields
....................................................................................................................
121
Chapter 7 - Input and Output
...............................................................................................
124
7.1 Standard Input and Output
.........................................................................................
124
7.2 Formatted Output - printf
...........................................................................................
125
7.3 Variable-length Argument Lists
..................................................................................
127
7.4 Formatted Input - Scanf
.............................................................................................
128
7.5 File Access
.................................................................................................................
130
7.6 Error Handling - Stderr and Exit
................................................................................
132
7.7 Line Input and Output
................................................................................................
134
7.8 Miscellaneous Functions
............................................................................................
135
7.8.1 String Operations
................................................................................................
135
7.8.2 Character Class Testing and Conversion
..............................................................
135
7.8.3 Ungetc
................................................................................................................
135
7.8.4 Command Execution
...........................................................................................
135
7.8.5 Storage Management
..........................................................................................
136
7.8.6 Mathematical Functions
.......................................................................................
136
7.8.7 Random Number generation
................................................................................
136
Chapter 8 - The UNIX System Interface
..............................................................................
138
8.1 File Descriptors
..........................................................................................................
138
8.2 Low Level I/O - Read and Write
................................................................................
139
8.3 Open, Creat, Close, Unlink
........................................................................................
140
8.4 Random Access - Lseek
.............................................................................................
142
8.5 Example - An implementation of Fopen and Getc
.......................................................
142
8.6 Example - Listing Directories
.....................................................................................
145
8.7 Example - A Storage Allocator
..................................................................................
149
Appendix A - Reference Manual
..........................................................................................
154
A.1 Introduction
..............................................................................................................
154
A.2 Lexical Conventions
..................................................................................................
154
A.2.1 Tokens
...............................................................................................................
154
A.2.2 Comments
..........................................................................................................
154
4
A.2.3 Identifiers
...........................................................................................................
154
A.2.4 Keywords
...........................................................................................................
154
A.2.5 Constants
...........................................................................................................
155
A.2.6 String Literals
.....................................................................................................
156
A.3 Syntax Notation
........................................................................................................
156
A.4 Meaning of Identifiers
...............................................................................................
157
A.4.1 Storage Class
.....................................................................................................
157
A.4.2 Basic Types
........................................................................................................
157
A.4.3 Derived types
.....................................................................................................
158
A.4.4 Type Qualifiers
...................................................................................................
158
A.5 Objects and Lvalues
..................................................................................................
158
A.6 Conversions
..............................................................................................................
159
A.6.1 Integral Promotion
.............................................................................................
159
A.6.2 Integral Conversions
...........................................................................................
159
A.6.3 Integer and Floating
...........................................................................................
159
A.6.4 Floating Types
....................................................................................................
159
A.6.5 Arithmetic Conversions
......................................................................................
159
A.6.6 Pointers and Integers
..........................................................................................
160
A.6.7 Void
...................................................................................................................
160
A.6.8 Pointers to Void
.................................................................................................
161
A.7 Expressions
...............................................................................................................
161
A.7.1 Pointer Conversion
.............................................................................................
161
A.7.2 Primary Expressions
...........................................................................................
161
A.7.3 Postfix Expressions
............................................................................................
162
A.7.4 Unary Operators
.................................................................................................
164
A.7.5 Casts
..................................................................................................................
165
A.7.6 Multiplicative Operators
.....................................................................................
165
A.7.7 Additive Operators
.............................................................................................
166
A.7.8 Shift Operators
...................................................................................................
166
A.7.9 Relational Operators
...........................................................................................
167
A.7.10 Equality Operators
...........................................................................................
167
A.7.11 Bitwise AND Operator
.....................................................................................
167
A.7.12 Bitwise Exclusive OR Operator
........................................................................
167
A.7.13 Bitwise Inclusive OR Operator
.........................................................................
168
A.7.14 Logical AND Operator
.....................................................................................
168
A.7.15 Logical OR Operator
........................................................................................
168
A.7.16 Conditional Operator
........................................................................................
168
A.7.17 Assignment Expressions
...................................................................................
169
A.7.18 Comma Operator
..............................................................................................
169
A.7.19 Constant Expressions
.......................................................................................
169
A.8 Declarations
..............................................................................................................
170
A.8.1 Storage Class Specifiers
.....................................................................................
170
A.8.2 Type Specifiers
...................................................................................................
171
A.8.3 Structure and Union Declarations
.......................................................................
172
A.8.4 Enumerations
.....................................................................................................
174
A.8.5 Declarators
.........................................................................................................
175
A.8.6 Meaning of Declarators
......................................................................................
176
A.8.7 Initialization
.......................................................................................................
178
A.8.8 Type names
........................................................................................................
180
A.8.9 Typedef
..............................................................................................................
181
A.8.10 Type Equivalence
.............................................................................................
181
A.9 Statements
................................................................................................................
181
A.9.1 Labeled Statements
.............................................................................................
182
5
A.9.2 Expression Statement
.........................................................................................
182
A.9.3 Compound Statement
.........................................................................................
182
A.9.4 Selection Statements
..........................................................................................
183
A.9.5 Iteration Statements
...........................................................................................
183
A.9.6 Jump statements
.................................................................................................
184
A.10 External Declarations
..............................................................................................
184
A.10.1 Function Definitions
.........................................................................................
185
A.10.2 External Declarations
.......................................................................................
186
A.11 Scope and Linkage
..................................................................................................
186
A.11.1 Lexical Scope
...................................................................................................
187
A.11.2 Linkage
............................................................................................................
187
A.12 Preprocessing
..........................................................................................................
187
A.12.1 Trigraph Sequences
..........................................................................................
188
A.12.2 Line Splicing
....................................................................................................
188
A.12.3 Macro Definition and Expansion
.......................................................................
188
A.12.4 File Inclusion
....................................................................................................
190
A.12.5 Conditional Compilation
...................................................................................
191
A.12.6 Line Control
.....................................................................................................
192
A.12.7 Error Generation
..............................................................................................
192
A.12.8 Pragmas
............................................................................................................
192
A.12.9 Null directive
....................................................................................................
192
A.12.10 Predefined names
............................................................................................
192
A.13 Grammar
.................................................................................................................
193
Appendix B - Standard Library
............................................................................................
199
B.1 Input and Output: <stdio.h>
......................................................................................
199
B.1.1 File Operations
...................................................................................................
199
B.1.2 Formatted Output
...............................................................................................
200
B.1.3 Formatted Input
..................................................................................................
202
B.1.4 Character Input and Output Functions
................................................................
203
B.1.5 Direct Input and Output Functions
......................................................................
204
B.1.6 File Positioning Functions
...................................................................................
204
B.1.7 Error Functions
..................................................................................................
205
B.2 Character Class Tests: <ctype.h>
...............................................................................
205
B.3 String Functions: <string.h>
......................................................................................
205
B.4 Mathematical Functions: <math.h>
............................................................................
206
B.5 Utility Functions: <stdlib.h>
......................................................................................
207
B.6 Diagnostics: <assert.h>
..............................................................................................
209
B.7 Variable Argument Lists: <stdarg.h>
.........................................................................
209
B.8 Non-local Jumps: <setjmp.h>
....................................................................................
210
B.9 Signals: <signal.h>
....................................................................................................
210
B.10 Date and Time Functions: <time.h>
.........................................................................
210
B.11 Implementation-defined Limits: <limits.h> and <float.h>
.........................................
212
Appendix C - Summary of Changes
.....................................................................................
214
[ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • souvenir.htw.pl
  • Linki