| |
| |
Preface | |
| |
| |
| |
Getting Ready | |
| |
| |
Whence C? Why C? Whither C? | |
| |
| |
High-Level Computer Languages and Compilers | |
| |
| |
Using C: Seven Steps | |
| |
| |
Programming Mechanics | |
| |
| |
Language Standards | |
| |
| |
Book Organization | |
| |
| |
Summary | |
| |
| |
Review Questions | |
| |
| |
Programming Exercise | |
| |
| |
| |
Introducing C | |
| |
| |
A Simple Sample of C | |
| |
| |
The Explanation | |
| |
| |
The Structure of a Simple Program | |
| |
| |
Tips on Making Your Programs Readable | |
| |
| |
Taking Another Step | |
| |
| |
While You''re at It ... | |
| |
| |
Multiple Functions | |
| |
| |
Debugging | |
| |
| |
Keywords and Reserved Identifiers | |
| |
| |
Key Concepts | |
| |
| |
Summary | |
| |
| |
Review Questions | |
| |
| |
Programming Exercises | |
| |
| |
| |
Data and C | |
| |
| |
A Sample Program | |
| |
| |
Data Variables and Constants | |
| |
| |
Data: Data-Type Keywords | |
| |
| |
C Data Types | |
| |
| |
Using Data Types | |
| |
| |
Arguments and Pitfalls | |
| |
| |
One More Example | |
| |
| |
Key Concepts | |
| |
| |
Summary | |
| |
| |
Review Questions | |
| |
| |
Programming Exercises | |
| |
| |
| |
Character Strings and Formatted Input/Output | |
| |
| |
Introductory Program | |
| |
| |
Character Strings: An Introduction | |
| |
| |
Constants and the C Preprocessor | |
| |
| |
Exploring and Exploiting printf()and scanf() | |
| |
| |
Usage Tips | |
| |
| |
Key Concepts | |
| |
| |
Summary | |
| |
| |
Review Questions | |
| |
| |
Programming Exercises | |
| |
| |
| |
Operators, Expressions and Statements | |
| |
| |
Introducing Loops | |
| |
| |
Fundamental Operators | |
| |
| |
Some Additional Operators | |
| |
| |
Expressions and Statements | |
| |
| |
Type Conversions | |
| |
| |
Function with Arguments | |
| |
| |
A Sample Program | |
| |
| |
Key Concepts | |
| |
| |
Summary | |
| |
| |
Review Questions | |
| |
| |
Programming Exercises | |
| |
| |
| |
C Control Statements: Looping | |
| |
| |
An Initial Example | |
| |
| |
The while Statement | |
| |
| |
Which is Bigger: Using Relational Operators and Expressions | |
| |
| |
In Definite Loops and Counting Loops | |
| |
| |
The for Loop | |
| |
| |
More Assignment Operators | |
| |
| |
The Comma Operator | |
| |
| |
An Exit-Condition Loop: do while | |
| |
| |
Which Loop? Nested Loops | |
| |
| |
Arrays | |
| |
| |
A Loop Example Using a Function | |
| |
| |
Key Concepts | |
| |
| |
Summary | |
| |
| |
Review Questions | |
| |
| |
Programming Exercises | |
| |
| |
| |
C Control Statements: Branching and Jumps | |
| |
| |
The If Statement | |
| |
| |
Adding else to the If Statement | |
| |
| |
Let''s Get Logical | |
| |
| |
A Word-Count Program | |
| |
| |
The Conditional Operator: ? | |
| |
| |
Loop Aids: continue and break | |
| |
| |
Multiple Choice: switch and break | |
| |
| |
The goto | |
| |
| |
Statement | |
| |
| |
Key Concepts | |
| |
| |
Summary | |
| |
| |
Review Questions | |
| |
| |
Programming Exercises | |
| |
| |
| |
Character Input/Output and Redirection | |
| |
| |
Single-Character I/O: getchar() and the putchar() | |
| |
| |
Buffers | |
| |
| |
Terminating Keyboard Input | |
| |
| |
Redirection and Files | |
| |
| |
Creating a Friendlier User Interface | |
| |
| |
Input Validation | |
| |
| |
Menu Browsing | |
| |
| |
Key Concepts | |
| |
| |
Summary | |
| |
| |
Review Questions | |
| |
| |
Programming Exercises | |
| |
| |
| |
Functions | |
| |
| |
Reviewing Functions | |
| |
| |
ANSI C Function Prototyping | |
| |
| |
Recursion | |
| |
| |
All C Functions Are Created Equal | |
| |
| |
Compiling Programs | |
| |
| |
With Two or more Source Code Files | |
| |
| |
Finding Addresses: The & Operator | |
| |
| |
Altering Variables in the Calling Function | |
| |
| |
Pointers: A First Look | |
| |
| |
Key concepts | |
| |
| |
Summary | |
| |
| |
Review Questions | |
| |
| |
Programming Exercises | |
| |
| |
| |
Arrays and Pointers | |
| |
| |
Arrays | |
| |
| |
Multidimensional Arrays | |
| |
| |
Pointers and Arrays | |
| |
| |
Pointers and Arrays | |
| |
| |
Functions, Arrays, and Pointers | |
| |
| |
Pointer Operations | |
| |
| |
Protecting Array Contents | |
| |
| |
Pointers and Multidimensional Arrays | |
| |
| |
Variable-Length Arrays (VLAs) | |
| |
| |
Compund Literals | |
| |
| |
Key Concepts | |
| |
| |
Summary | |
| |
| |
Review Questions | |
| |
| |
Programming Exercises | |
| |
| |
| |
Character Strings and String Functions | |
| |
| |
Defining Strings Within a Program | |
| |
| |
Character String Arrays and Initialization | |
| |
| |
String Input | |
| |
| |
String Output | |
| |
| |
The Do-It-Yourself Option | |
| |
| |
String Functions | |
| |
| |
A String Example: Sorting Strings | |
| |
| |
The ctype.h Character Functions and Strings | |
| |
| |
Command-Line Arguments | |
| |
| |
String to Number Conversions | |
| |
| |
Key Concepts | |
| |
| |
Summary | |
| |
| |
Review Questions | |
| |
| |
Programming Exercises | |
| |
| |
| |
Storage Classes, Linkage and Memory Management | |
| |
| |
Storage Classes | |
| |
| |
A Random Number Function and a Static Variable | |
| |
| |
Roll''Em | |
| |
| |
ANSI C Type Qualifiers | |
| |
| |
New Places for Old Keywords | |
| |
| |
Key Concepts | |
| |
| |
Summary | |
| |
| |
Review Questions | |
| |
| |
Programming Exercises | |
| |
| |
| |
File Input/Output | |
| |
| |
Communicating with Files | |
| |
| |
Standard I/O | |
| |
| |
A Simple-Minded File Condensing Program | |
| |
| |
File I/O: fprint(), fscan(), fgets(), and fputs() | |
| |
| |
Adventures in Random Access: fseek() and ftell() | |
| |
| |
Behind the Scenes with Standard I/O | |
| |
| |
Other Standard I/O Functions | |
| |
| |
Key Concepts | |
| |
| |
Summary | |
| |
| |
Review Questions | |
| |
| |
Programming Exercises | |
| |
| |
| |
Structures and Other Data Forms | |
| |
| |
Sample Problem: Creating an Inventory of Books | |
| |
| |
Setting Up the Structure Declaration | |
| |
| |
Defining a Structure Variable | |
| |
| |
Gaining Access to Structure Members | |
| |
| |
Arrays of Structures | |
| |
| |
Nested Structures | |
| |
| |
Pointers to Structures | |
| |
| |
Telling Functions About Structures | |
| |
| |
Saving the Structure Contents in a File | |
| |
| |
Structures: What Next? Unions: A Quick Look | |
| |
| |
Enumerated Types | |
| |
| |
Typedef: A Quick Look | |
| |
| |
Fancy Declarations | |
| |
| |
Functions and Pointers | |
| |
| |
Key Concepts | |
| |
| |
Summary | |
| |
| |
Review Questions | |
| |
| |
Programming Exercises | |
| |
| |
| |
Bit Fiddling | |
| |
| |
Binary Numbers | |
| |
| |
Bits, and Bytes | |
| |
| |
Other Bases | |
| |
| |
C''s Bitwise Operators | |
| |
| |
Bit Fields | |
| |
| |
Key Concepts | |
| |
| |
Summary | |
| |
| |
Review Questions | |
| |
| |
Programming Exercises | |
| |
| |
| |
The C Preprocessor and the C Library | |
| |
| |
First Steps | |
| |
| |
Manifest Constants: # define | |
| |
| |
Using Arguments with #define | |
| |
| |
Macro or Function? File Inclusion: #include | |
| |
| |
Other Directives | |
| |
| |
Inline Functions | |
| |
| |
The C Library | |
| |
| |
The Math Library | |
| |
| |
The General Utilities Library | |
| |
| |
The Assert Library | |
| |
| |
Memcpy() and memmove() from the string.h Library | |
| |
| |
Variable Arguments: stdarg.h | |
| |
| |
Key Concepts | |
| |
| |
Summary | |
| |
| |
Review Questions | |
| |
| |
Programming Exercises | |
| |
| |
| |
Advanced Data Representation | |
| |
| |
Exploring Data Representation | |
| |
| |
Beyond the Array to the Linked List | |
| |
| |
Abstract Data Types (ADTs) | |
| |
| |
Getting Queued with an ADT | |
| |
| |
Simulating with a Queue | |
| |
| |
The lInked List Versus with Array | |
| |
| |
Binary Search Trees | |
| |
| |
Other Directions | |
| |
| |
Key Concepts | |
| |
| |
Summary | |
| |
| |
Review Questions | |
| |
| |
Programming Exercises | |
| |
| |
| |
Reference Section | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
Answers to the Review Questions | |
| |
| |
| |
Additional Reading | |
| |
| |
| |
C Operators | |
| |
| |
Logical Operators | |
| |
| |
Sign Operators | |
| |
| |
| |
Basic Types and Storage Classes | |
| |
| |
Summary: Qualifiers | |
| |
| |
| |
Expressions, Statements, and Program Flow | |
| |
| |
| |
The Standard ANSI C Library with C99 Additions | |
| |
| |
Math Library: math.h | |
| |
| |
Variable Arguments: stdarg.h | |
| |
| |
Standard I/O Library: stdio.h | |
| |
| |
General Utilities: stdlib.h | |
| |
| |
| |
Extended Integer Types | |
| |
| |
| |
Expanded Character support | |
| |
| |
| |
C99 Numeric Computatioal Enhancements | |
| |
| |
| |
Differences Between C and C++ | |
| |
| |
Index | |