C Programming Tutorial
A complete C Programming learning path covering programming fundamentals, syntax, control flow, functions, arrays, strings, pointers, structures, memory management, file handling, and problem solving.
206 lessons
17 sections
6 of 206 lessons published
C Programming Tutorial 206 lessons
Introduction & Setup
- Introduction to C
- History of C
- Features of C
- Applications of C
- Advantages and Limitations of C
- C Standards and Implementations
- How C Programs Run
- Setting Up C Development Environment
- Your First C Program
- Basic Syntax of C
- Structure of a C Program
- Compilation Process in C
Tokens & Basics
- Tokens in C
- Keywords in C
- Identifiers in C
- Constants in C
- Variables in C
- Scope Rules in C
- Storage Classes in C
- Comments in C
Data Types & I/O
- Data Types in C
- Primitive Data Types
- Derived Data Types
- Type Modifiers
- Type Conversion in C
- Type Casting in C
- sizeof Operator
- Input and Output in C
- printf() in C
- scanf() in C
- Character I/O: getchar and putchar
- String I/O: gets/fgets and puts
- Format Specifiers in C
Operators & Expressions
- Operators in C
- Arithmetic Operators
- Relational Operators
- Logical Operators
- Bitwise Operators
- Assignment Operators
- Increment and Decrement Operators
- Conditional Operator
- Comma Operator
- sizeof and Address Operators
- Operator Precedence and Associativity
- Expression Evaluation in C
- Short-Circuit Evaluation
Control Flow
- Decision Making in C
- if Statement
- if-else Statement
- else-if Ladder
- Nested if
- switch Statement
- Loops in C
- for Loop
- while Loop
- do-while Loop
- Nested Loops
- break Statement
- continue Statement
- goto Statement
Functions
- Functions in C
- Function Declaration and Definition
- Function Arguments
- Return Values
- Call by Value
- Call by Reference Using Pointers
- Parameter Passing Techniques
- Main Function in C
- Recursion in C
- Types of Recursion
- Inline Functions
- Nested Functions
- Function Pointers
- Variadic Functions
Arrays
- Arrays in C
- Declaration and Initialization of Arrays
- Accessing Array Elements
- Traversing an Array
- Passing Arrays to Functions
- Array Parameters and Pointers
- One-Dimensional Arrays in C
- Two Dimensional Arrays
- Multidimensional Arrays in C
- Passing 2D Arrays to Functions
- Array of Pointers
- Variable Length Arrays
Strings
- Strings in C
- String Declaration and Initialization
- String Length
- String Traversal
- String Comparison
- String Copy
- String Concatenation
- Substring Search
- String Tokenization
- String Reverse
- Palindrome String in C
- String Pattern Searching
- String Literals
Pointers
- Pointers in C
- Address and Dereference Operators
- Pointer Arithmetic
- Pointers and Arrays
- Pointer to Pointer
- Void Pointers
- Null Pointers
- Dangling Pointers
- Wild Pointers
- Constant Pointers and Pointer to Constant
- Function Pointers
- Array of Pointers
- Pointers to Functions
- Pointers to Structures
- Pointer Type Casting
Structures & Unions
- Structures in C
- Structure Members
- Array of Structures
- Nested Structures
- Pointers to Structures
- Passing Structures to Functions
- Structure Alignment and Padding
- Self-Referential Structures
- Bit Fields in Structures
- Unions in C
- Structure vs Union
- Enumeration in C
- typedef in C
Dynamic Memory & Memory
- Program Memory Layout in C
- Stack and Heap in C
- malloc()
- calloc()
- realloc()
- free()
- Dynamic Arrays
- Memory Leaks
- Dangling Memory
- Double Free
- Use After Free
- Memory Safety Best Practices
Preprocessor & Headers
- C Preprocessor
- Header Files in C
- #include Directive
- #define and Macros
- Function-like Macros
- Conditional Compilation
- #ifdef, #ifndef and #endif
- Predefined Macros
- Pragma Directive
- Include Guards
File Handling
- File Handling in C
- File Pointers
- fopen() and fclose()
- Reading a File
- Writing to a File
- Appending to a File
- fgetc() and fputc()
- fgets() and fputs()
- fprintf() and fscanf()
- Binary File Handling
- EOF, getc() and feof()
- Read/Write Structures to Files
- Delete a File
- File Error Handling
Error Handling & Debugging
- Error Handling in C
- perror()
- strerror()
- errno
- Assertions in C
- Debugging C Programs
- Common C Runtime Errors
- Divide by Zero Handling
- goto for Error Handling
Date, Time & Misc
- Date and Time in C
- time() Function
- clock() Function
- Random Numbers in C
- Linkage in C
- External and Static Linkage
- Storage Duration
- Integer Overflow and Undefined Behavior
- Implementation-Defined vs Undefined Behavior
Advanced C
- Generic Selection (_Generic)
- Variadic Functions
- Input/Output System Calls
- Signals in C
- Signal Handling
- Socket Programming in C
- Multithreading in C
- Threads and Synchronization
- Atomic Operations
- Memory-Mapped Files
- Low-Level Systems Programming
Practice & Projects
- C Programming Examples
- C Exercises
- C Fundamental Practice Problems
- C Functions Practice Problems
- C Compound Data Type Practice Problems
- C Pattern Programs
- C Array Programs
- C String Programs
- C Pointer Programs
- C Structure and Union Programs
- C File Handling Projects
- C Mini Projects
- C Interview Questions
- Data Structures and Algorithms in C
- Introduction & Setup 12
- Tokens & Basics 8
- Data Types & I/O 13
- Operators & Expressions 13
- Control Flow 2 / 14
- Functions 14
- Arrays 2 / 12
- Strings 2 / 13
- Pointers 15
- Structures & Unions 13
- Dynamic Memory & Memory 12
- Preprocessor & Headers 10
- File Handling 14
- Error Handling & Debugging 9
- Date, Time & Misc 9
- Advanced C 11
- Practice & Projects 14