C, C + Training
C Basics
- History of C
- Characteristics of C
- C Program Structure
- Variables
Defining Global Variables
Printing Out and Inputting Variables - Constants
- Arithmetic Operations
- Comparison Operations
- Logical Operators
- Order of Precedence
Conditionals
- Conditionals
- The if statement
- The? Operator
- The switch Statement
Looping and Iteration
- The for statement
- The while statement
- The do-while statement
- Break and continue
Arrays and Strings
- Defining, initializing and using arrays
- Single and Multi-dimensional Arrays
- Arrays of Characters and Strings
- Arrays and pointers
- Strings
Functions
- Role of Functions
- Passing arguments to functions
- Returning values from functions
- Recursive functions
- Call back functions
- Implications on Stack
- Pass by value / reference
- Passing Arrays to functions
String Handling :
- Basic String handling functions
- String Searching
- Character Conversions and testing : <ctype.h>
- Memory Operations: <memory.h>
Structures and Unions
- Structures
- Nested Structures
- Array of Structures
- Allocation of memory and holes
- Unions
Further Data Types
- Coercion or Type-Casting
- Enumerated Types
- Static Variables
Dynamic Memory Allocation & Dynamic Structures
- Malloc, Sized, and Free
- Calloc and Realloc
Advanced Pointer Topics
- The purpose of pointers
- Defining pointers
- The & and * Operators
- Pointer Assignment
- Pointers with functions
- Pointer Arithmetic
- Advanced pointer types
- Pointers to functions
- Pointers to String
- Pointers and Dynamic memory
- Pointers and Structures
- Common Pointer Pitfalls
Not assigning a pointer to memory address before using it
Illegal indirection
Storage Classes
- Scope
- Internal
- External
- Automatic
- Static
- Scope and extent of parameters
Low Level Operators and Bit Fields
- Bitwise Operators
- Bit Fields
Bit Fields: Practical Example
A note of Caution: Portability
The C Processor
- #define
- #undef
- #include
- #if – conditional inclusion
- Preprocessor Compiler Control
- Other Preprocessor Commands