C Primer Plus is a conversational-style book aimed at those new
to C programming. A friendly and easy-to-use self-study guide, this book will be
appropriate for serious students of programming, as well as developers
proficient in other languages with a desire to better understand the
fundamentals of this core language.
As with all the editions, author Stephen Prata's aim has been to
create an introduction to C that is instructive, clear, and helpful. Programming
concepts are explained along with details of the C language; the book does not
assume that you are a professional programmer. Many short, easily typed examples
illustrate just one or two concepts at a time, since learning by doing is one of
the most effective ways to master new information. Finally, review questions and
programming exercises at the end of each chapter punctuate the most critical
information and help readers digest the most difficult concepts. The text has
been updated to accommodate the emergence of a new standard for C-C99.
Table of Contents
Preface.
1. 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.
2. 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.
3. 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.
4. 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.
5. 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.
6. 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.
7. 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.
8. 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.
9. 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.
10. 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.
11. 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.
12. 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.
13. 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.
14. 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.
15. Bit Fiddling.
Binary Numbers. Bits, and Bytes. Other Bases.
C's Bitwise Operators. Bit Fields. Key Concepts. Summary. Review Questions.
Programming Exercises.
16. 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.
17. 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.
Appendix A: Reference Section.
Chapter 1. Chapter 2. Chapter 3. Chapter 4.
Chapter 5. Chapter 6. Chapter 7. Chapter 8. Chapter 9. Chapter 10. Chapter 11.
Chapter 12. Chapter 13. Chapter 14. Chapter 15. Chapter 16. Chapter 17.
Appendix B: Answers to the Review Questions.
Section I-Additional Reading. Section II-C
Operators. Logical Operators. Sign Operators. Section III-Basic Types and
Storage Classes. Summary: Qualifiers. Section IV-Expressions, Statements, and
Program Flow. Section V-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. Section VI-Extended Integer Types. Section
VII-Expanded Character support. Section VIII-C99 Numeric Computatioal
Enhancements. Section IX-Differences Between C and C++.
INDEX