前言 1 Introduction 1.1 Introduction 1.2 The C Programming Language 1.3 C Standard Library 1.4 C++ and Other C-Based Languages 1.5 Typical C Program Development Environment 1.5.1 Phase 1: Creating a Program 1.5.2 Phases 2 and 3: Preprocessing and Compiling a C Program 1.5.3 Phase 4: Linking 1.5.4 Phase 5: Loading 1.5.5 Phase 6: Execution 1.5.6 Standard Input, Standard Output and Standard Error Streams 1.6 Test-Driving a C Application in Windows, Linux and Mac OS X 1.6.1 Running a C Application from the Windows Command Prompt 1.6.2 Running a C Application Using GNU C with Linux 1.6.3 Running a C Application Using GNU C with Mac OS X 1.7 Operating Systems 1.7.1 Windows―A Proprietary Operating System 1.7.2 Linux―An Open-Source Operating System 1.7.3 Apple’s Mac OS X; Apple’s iOS ? for iPhone ? , iPad ? and iPod Touch ? Devices 1.7.4 Google’s Android 2 Introduction to C Programming 2.1 Introduction 2.2 A Simple C Program: Printing a Line of Text 2.3 Another Simple C Program: Adding Two Integers 2.4 Arithmetic in C 2.5 Decision Making: Equality and Relational Operators 2.6 Secure C Programming 3 Control Statements: Part I 3.1 Introduction 3.2 Control Structures 3.3 The if Selection Statement 3.4 The if … else Selection Statement 3.5 The while Repetition Statement 3.6 Class Average with Counter-Controlled Repetition 3.7 Class Average with Sentinel-Controlled Repetition 3.8 Nested Control Statements 3.9 Assignment Operators 3.10 Increment and Decrement Operators 3.11 Secure C Programming 4 Control Statements: Part II 4.1 Introduction 4.2 Repetition Essentials 4.3 Counter-Controlled Repetition 4.4 for Repetition Statement 4.5 for Statement: Notes and Observations 4.6 Examples Using the for Statement 4.7 switch Multiple-Selection Statement 4.8 do … while Repetition Statement 4.9 break and continue Statements 4.10 Logical Operators 4.11 Confusing Equality ( == ) and Assignment ( = ) Operators 4.12 Secure C Programming 5 Functions 5.1 Introduction 5.2 Program Modules in C 5.3 Math Library Functions 5.4 Functions 5.5 Function Definitions 5.6 Function Prototypes: A Deeper Look 5.7 Function Call Stack and Stack Frames 5.8 Headers 5.9 Passing Arguments By Value and By Reference 5.10 Random Number Generation 5.11 Example: A Game of Chance 5.12 Storage Classes 5.13 Scope Rules 5.14 Recursion 5.15 Example Using Recursion: Fibonacci Series 5.16 Recursion vs. Iteration 5.17 Secure C Programming 6 Arrays 6.1 Introduction 6.2 Arrays 6.3 Defining Arrays 6.4 Array Examples 6.5 Passing Arrays to Functions 6.6 Sorting Arrays 6.7 Case Study: Computing Mean, Median and Mode Using Arrays 6.8 Searching Arrays 6.9 Multidimensional Arrays 6.10 Variable-Length Arrays 6.11 Secure C Programming 7 Pointers 7.1 Introduction 7.2 Pointer Variable Definitions and Initialization 7.3 Pointer Operators 7.4 Passing Arguments to Functions by Reference 7.5 Using the const Qualifier with Pointers 7.5.1 Converting a String to Uppercase Using a Non-Constant Pointer to Non-Constant Data 7.5.2 Printing a String One Character at a Time Using a Non-Constant Pointer to Constant Data 7.5.3 Attempting to Modify a Constant Pointer to Non-Constant Data 7.5.4 Attempting to Modify a Constant Pointer to Constant Data 7.6 Bubble Sort Using Pass-by-Reference 7.7 sizeof Operator 7.8 Pointer Expressions and Pointer Arithmetic 7.9 Relationship between Pointers and Arrays 7.10 Arrays of Pointers 7.11 Case Study: Card Shuffling and Dealing Simulation 7.12 Pointers to Functions 7.13 Secure C Programming 8 Characters and Strings 8.1 Introduction 8.2 Fundamentals of Strings and Characters 8.3 Character-Handling Library 8.3.1 Functions isdigit , isalpha , isalnum and isxdigit 8.3.2 Functions islower , isupper , tolower and toupper 8.3.3 Functions isspace , iscntrl , ispunct , isprint and isgraph 8.4 String-Conversion Functions 8.4.1 Function strtod 8.4.2 Function strtol 8.4.3 Function strtoul 8.5 Standard Input/Output Library Functions 8.5.1 Functions fgets and putchar 8.5.2 Function getchar 8.5.3 Function sprintf 8.5.4 Function sscanf 8.6 String-Manipulation Functions of the String-Handling Library 8.6.1 Functions strcpy and strncpy 8.6.2 Functions strcat and strncat 8.7 Comparison Functions of the String-Handling Library 8.8 Search Functions of the String-Handling Library 8.8.1 Function strchr 8.8.2 Function strcspn 8.8.3 Function strpbrk 8.8.4 Function strrchr 8.8.5 Function strspn 8.8.6 Function strstr 8.8.7 Function strtok 8.9 Memory Functions of the String-Handling Library 8.9.1 Function memcpy 8.9.2 Function memmove 8.9.3 Function memcmp 8.9.4 Function memchr 8.9.5 Function memset 8.10 Other Functions of the String-Handling Library 8.10.1 Function strerror 8.10.2 Function strlen 8.11 Secure C Programming 9 Formatted Input/Output 9.1 Introduction 9.2 Streams 9.3 Formatting Output with printf 9.4 Printing Integers 9.5 Printing Floating-Point Numbers 9.6 Printing Strings and Characters 9.7 Other Conversion Specifiers 9.8 Printing with Field Widths and Precision 9.9 Using Flags in the printf Format Control String 9.10 Printing Literals and Escape Sequences 9.11 Reading Formatted Input with scanf 9.12 Secure C Programming 10 Structures, Unions, Bit Manipulation and Enumerations 10.1 Introduction 10.2 Structure Definitions 10.2.1 Self-Referential Structures 10.2.2 Defining Variables of Structure Types 10.2.3 Structure Tag Names 10.2.4 Operations That Can Be Performed on Structures 10.3 Initializing Structures 10.4 Accessing Structure Members 10.5 Using Structures with Functions 10.6 typedef 10.7 Example: High-Performance Card Shuffling and Dealing Simulation 10.8 Unions 10.8.1 Union Declarations 10.8.2 Operations That Can Be Performed on Unions 10.8.3 Initializing Unions in Declarations 10.8.4 Demonstrating Unions 10.9 Bitwise Operators 10.9.1 Displaying an Unsigned Integer in Bits 10.9.2 Making Function displayBits More Scalable and Portable 10.9.3 Using the Bitwise AND, Inclusive OR, Exclusive OR and Complement Operators 10.9.4 Using the Bitwise Left- and Right-Shift Operators 10.9.5 Bitwise Assignment Operators 10.10 Bit Fields 10.11 Enumeration Constants 10.12 Secure C Programming 11 File Processing 11.1 Introduction 11.2 Files and Streams 11.3 Creating a Sequential-Access File 11.4 Reading Data from a Sequential-Access File 11.5 Random-Access Files 11.6 Creating a Random-Access File 11.7 Writing Data Randomly to a Random-Access File 11.8 Reading Data from a Random-Access File 11.9 Case Study: Transaction-Processing Program 11.10 Secure C Programming 12 Data Structures 12.1 Introduction 12.2 Self-Referential Structures 12.3 Dynamic Memory Allocation 12.4 Linked Lists 12.4.1 Function insert 12.4.2 Function delete 12.4.3 Function printList 12.5 Stacks 12.5.1 Function push 12.5.2 Function pop 12.5.3 Applications of Stacks 12.6 Queues 12.6.1 Function enqueue 12.6.2 Function dequeue 12.7 Trees 12.7.1 Function insertNode 12.7.2 Traversals: Functions inOrder , preOrder and postOrder 12.7.3 Duplicate Elimination 12.7.4 Binary Tree Search 12.8 Secure C Programming 13 Preprocessor 13.1 Introduction 13.2 #include Preprocessor Directive 13.3 #define Preprocessor Directive: Symbolic Constants 13.4 #define Preprocessor Directive: Macros 13.5 Conditional Compilation 13.6 #error and #pragma Preprocessor Directives 13.7 # and ## Operators 13.8 Line Numbers 13.9 Predefined Symbolic Constants 13.10 Assertions 13.11 Secure C Programming 14 Other Topics 14.1 Introduction 14.2 Redirecting I/O 14.3 Variable-Length Argument Lists 14.4 Using Command-Line Arguments 14.5 Notes on Compiling Multiple-Source-File Programs 14.6 Program Termination with exit and atexit 14.7 Suffixes for Integer and Floating-Point Literals 14.8 Signal Handling 14.9 Dynamic Memory Allocation: Functions calloc and realloc 14.10 Unconditional Branching with goto A Operator Precedence Chart B ASCII Character Set C Number Systems C.1 Introduction C.2 Abbreviating Binary Numbers as Octal and Hexadecimal Numbers C.3 Converting Octal and Hexadecimal Numbers to Binary Numbers C.4 Converting from Binary, Octal or Hexadecimal to Decimal C.5 Converting from Decimal to Binary, Octal or Hexadecimal C.6 Negative Binary Numbers: Two’s Complement Notation D Sorting: A Deeper Look D.1 Introduction D.2 Big O Notation D.3 Selection Sort D.4 Insertion Sort D.5 Merge Sort E Additional Features of the C Standard E.1 Introduction E.2 Support for C99 E.3 C99 Headers E.4 Mixing Declarations and Executable Code E.5 Declaring a Variable in a for Statement Header E.6 Designated Initializers and Compound Literals E.7 Type bool E.8 Implicit int in Function Declarations E.9 Complex Numbers E.10 Variable-Length Arrays E.11 Additions to the Preprocessor E.12 Other C99 Features E.12.1 Compiler Minimum Resource Limits E.12.2 The restrict Keyword E.12.3 Reliable Integer Division E.12.4 Flexible Array Members E.12.5 Relaxed Constraints on Aggregate Initialization E.12.6 Type Generic Math E.12.7 Inline Functions E.12.8 return Without Expression E.12.9 __func__ Predefined Identifier E.12.10 va_copy Macro E.13 New Features in the C11 Standard E.13.1 New C11 Headers E.13.2 Multithreading Support E.13.3 quick_exit function E.13.4 Unicode ? Support E.13.5 _Noreturn Function Specifier E.13.6 Type-Generic Expressions E.13.7 Annex L: Analyzability and Undefined Behavior E.13.8 Anonymous Structures and Unions E.13.9 Memory Alignment Control E.13.10 Static Assertions E.13.11 Floating Point Types E.14 Web Resources F Using the Visual Studio Debugger F.1 Introduction F.2 Breakpoints and the Continue Command F.3 Locals and Watch Windows F.4 Controlling Execution Using the Step Into , Step Over , Step Out and Continue Commands F.5 Autos Window G Using the GNU Debugger G.1 Introduction G.2 Breakpoints and the run , stop , continue and print Commands G.3 print and set Commands G.4 Controlling Execution Using the step , finish and next Commands G.5 watch Command Index
以下为对购买帮助不大的评价