CONTENTS
vii
Introducing the stringClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125
Assignment, Concatenation, and Appending . . . . . . . . . . . . . . . . . . . . . . .126
More stringClass Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127
More on stringClass I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
Introducing Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131
Using a Structure in a Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133
Can a Structure Use a stringClass Member? . . . . . . . . . . . . . . . . . . . . . .135
Other Structure Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136
Arrays of Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137
Bit Fields in Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139
Unions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139
Enumerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141
Setting Enumerator Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142
Value Ranges for Enumerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143
Pointers and the Free Store . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .144
Declaring and Initializing Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147
Pointer Danger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149
Pointers and Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150
Allocating Memory with new . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150
Freeing Memory with delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152
Using newto Create Dynamic Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153
Pointers, Arrays, and Pointer Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . .156
Program Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157
Pointers and Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162
Using newto Create Dynamic Structures . . . . . . . . . . . . . . . . . . . . . . . . . .166
Automatic Storage, Static Storage, and Dynamic Storage . . . . . . . . . . . . . .170
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .172
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .173
Programming Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174
CHAPTER 5: Loops and Relational Expressions . . . . . . . . . . . . . . . . . . . . . . . . .177
Introducing forLoops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .178
forLoop Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179
Back to the forLoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .185
Changing the Step Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187
Inside Strings with the forLoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .188
The Increment (++) and Decrement (--) Operators . . . . . . . . . . . . . . . . . .189
Side Effects and Sequence Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190
Prefixing Versus Postfixing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .191
The Increment/Decrement Operators and Pointers . . . . . . . . . . . . . . . . . .191
Combination Assignment Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192
全部评论(0)