Apress Beginning C From Novice to Professional by Ivor Horton

Chapter1.Programming in C
Creating C Programs
Editing
Compiling
Linking
Executing
Creating Your First Program
Editing Your First Program
dealing with Errors
Dissecting a Simple Program
Comments
Preprocessing Directives
Defining the main()Function
Keywords
The Body of a Function
Outputting Information
Arguments
Control Characters
Developing Programs in C
Understanding the Problem
Detailed Design
Implementation
Testing
Functions and Modular programming
Common Mistakes
Points to Remember

Chapter2.First Steps in Programming
Memory in Your Computer
What Is a Variable?
Variables That Store Numbers
Integer Variables
Naming Variables
Initializing Variables
Arithmetic Statements
Variables and Memory
Integer Variables Types
Unsigned Integer Types
Using Integer Types
Specifying Integer Constants
Floating-point Values
Floating-point Variables
Division Using Floating-point Values
Controlling the number of decimal Places
Controlling the Output Field Width
More Complicated Expressions
Defining Constants
Knowing Your Limitations
Introducing the sizeof Operator
Choosing the correct Type for the job
Explicit Type Conversion
Automatic Conversion
Rules for Implicit Conversions
Implicit Conversions in Assignment Statements
More Numeric Data Types
The character type
Character input and Character Output
The Wide Character type
Enumerations
Variables to store Boolean Values
The Complex Number Types
The OP=Form of Assignment
Mathematical Functions
Designing a program

Chapter3.Making Decisions
The Decision-making process
Arithmetic Comparisons
Expressions Involving Relational Operators
The Basic if Statement
Extending the if Statement:if-else
Using Blocks of Code in if Statements
Nested if Statements
More Relational Operators
Logical Operators
The Conditional operator
Operator precedence:Who Goes First?
Multiple-choice Questions
Using else-if Statements for Multiple Choices
The switch Statement
The goto Statement
Bitwise Operators
The op=Use of Bitwise operators
Using Bitwise Operators
Designing a program

Chapter4.Loops
How loops work
Introducing the Increment and Decrement operators
The for Loop
General Syntax of the for loop
More on the Increment and Decrement operators
The Increment operator
The prefix and postfix forms of the Increment Operator
The Decrement Operator
The for Loop Revisited
Modifying the for Loop Variable
A for Loop with No Parameters
The break Statements in a Loop
Limiting Input Using a for Loop
Generating Pseudo-Random Integers
More for Loop Control Options
Floating-point Loop Control Variables
The while Loop
Nested Loops
Nested Loops and the goto Statements
The do-while Loop
The continue Statement
Designing a program

Chapter5.Arrays
An Introduction to Arrays
Programming without arrays
What Is an array?
Using Arrays
A Reminder about memory
Arrays and Addresses
Intializing an array
Finding the Size of an array
Multidimensional Arrays
Initializing Multidimensional Arrays
Designing a program

Chapter6.Applications with Strings and Text
What Is a string?
String-and Text-Handling Methods
Operations with Strings
Appending a string
Arrays of Strings
String Library Functions
Copying Strings Using a Library Functions
Determining string length Using a Library Functions
Joining strings Using a Library Functions
Comparing strings
Searching a string
Analyzing and Transforming strings
Converting Characters
Converting Strings to Numerical values
Working with wide Character Strings
Operations on wide character strings
Testing and converting wide characters
Designing a program

Chapter7.Pointers
A first look at pointers
Declaring pointers
Accessing a value through a pointer
Using Pointers
Pointers to Constants
Constant Pointers
Naming pointers
Arrays and Pointers
Multidimentional Arrays
Multidimentional Arrays and Pointers
Accessing array elements
Using memory as you goMemory Allocation with the calloc() function
Releasing Dynamically allocated Memory
Reallocating memory
Handling Strings Using Pointers
String Input with more control
Using Arrays of Pointers
designing a program

Chapter8.Structuring your Programs
Program Structure
Variable Scope and Lifetime
Variable Scope and Functions
Functions
Defining a Functions
The return Statement
The Pass-By-Value Mechanism
Function Declarations
Pointers As Arguments and Return Values
const Parameters
Returning pointer Values from a function
Incrementing pointers in a function

Chapter9.More on Functions
Pointers to Functions
Declaring a pointer to a function
Calling a function through a function pointer
Arrays of Pointers to Functions
Pointers to Functions As Arguments
Variables in function
Static Variables:Keeping Track within a function
Sharing variables Between Functions
Functions That Call Themselves:Recursion
Functions with a variable Number of Arguments
Copying a va_list
Basic Rules for Variable-Length Argument Lists
The main()Function
Ending a program
Libraries of Functions:Header Files
Enhancing Performance
Declaring Functions inline
Using the restrict Keyword

Chapter10.Essential Input and Output Operations
Input and Output Streams
Standard Streams
Input from the Keyboard
Formatted Keyboard Input
Input Format Control Strings
Characters in the Input Format String
Variations on Floating-Point Input
Reading Hexadecimal and Octal Values
Reading Characters Using Scanf()
Pitfalls with scanf()
String Input from the Keyboard
Unformatted Input from thr Keyboard
Output to the Screen
Formatted Output to the Screen Using printf()
Escape Sequences
Integer Output
Outputting Floating-point Values
Character Output
Other Output Functions
Unformatted output to the Screen
Formatted output to an Array
Formatted Input from an Array
Sending Output to the printer

Chapter11.Structuring Data
Data Structures:Using struct
Defining structure types and structure Variables
Accessing structure Members
Unnamed structures
Arrays of structures
structures in Expressions
Pointers to structures
Dynamic Memory Allocation for structures
More on structure Members
structures As members of a structure
Declaring a structure within a structure
Pointers to structure As structure Members
Doubly Linked Lists
Bit-Fields in a structure
Structures and functions
Structures As Arguments to Functions
Pointers to structures As Function Arguments
A structure As a Function Return Value
An Exercise in program Modification
Binary Trees
Sharing Memory
Unions
Pointers to Unions
Initializing Unions
Structures As Union Members
Defining your Own Data types
Structures and the typedef Facility
Simplifying code Using typedef

Chapter12.Working with Files
The Concept of a file
Positions in a file
File Streams
Accessing Files
Opening a File
Renaming a file
Closing a file
Deleting a file
Writing to a Text File
Reading from a Text File
Writing Stings to a Text File
Reading Stings from a Text File
Formatted file Input and Output
Formatted Output to a file
Formatted input From a file
Dealing with Errors
Further Text file Operation Modes
Binary File Input and Output
Specifying Binary Mode
Writing a Binary File
Reading a Binary File
Moving Around in a file
File Positioning Operations
Finding Out Where You Are
Setting a Position in a file
Using Temporary Work Files
Creating a Temporary Work Files
Creating a Unique File name
Updating Binary Files
Changing the File Contents
Reading a record From the Keyboard
Writing a record to a file
Reading a record From a file
Writing a file
Listing the file Contents
Updating the Existing File Contents

Chapter13.Supporting Facilities
Preprocessing
Including Header Files in your Programs
External Variables and Functions
Substitutions in your Program Source Code
Macro Substitutions
Macro That Look Like Functions
Preprocessor Directives on Multiple Lines
Strings As Macro Arguments
Joining Two Results of a Macro Expansion
Logical Preprocessor Directives
Conditional Compilation
Directives Testing for Specific Values
Multiple-Choice Selections
standard preprocessing Macros
Debugging Methods
Integrated Debuggers
The Preprocessor in Debugging
Using the assert() Macro
Additional Library Functions
The Date and Time Function Library. Download