Learn C
Learn C from your first program to pointers, dynamic memory and data structures. Every lesson explains one idea in plain language and shows complete programs with their real output, and most lessons end with an exercise so you learn by doing.
Progress is saved in this browser. Accounts are coming later.
- Lessons available
- 47
- In the full course
- 47
- Beginner
Start from zero. No experience needed.
- Intermediate
Combine ideas to solve real problems.
- Advanced
The techniques used in professional work.
Course syllabus
All 47 lessons are available. Start anywhere, or follow the parts in order.
Part 1 · Beginner
C Fundamentals
Install a C compiler, write your first program, and learn how values, variables, types and input and output work.
Part 2 · Beginner
Control Flow
Make decisions with conditions and repeat work with loops.
Part 3 · Beginner
Functions
Organize code into functions, understand pass by value, scope and storage classes, and recursion.
Part 4 · Beginner
Arrays and Strings
Store collections of values in arrays and work with text as null-terminated strings.
Part 5 · Intermediate
Pointers
Understand addresses and pointers, pointer arithmetic, how arrays and pointers relate, and pointers to functions.
Part 6 · Intermediate
Memory Management
Allocate memory at runtime, and find and avoid the memory bugs C is famous for.
Part 7 · Intermediate
Structures and Data Structures
Group data with structs, unions and enums, then build linked lists, stacks and queues.
Part 8 · Advanced
Advanced C
Files, the preprocessor, multi-file programs, bitwise operations, command-line arguments, error handling and undefined behaviour.
Part 9 · Intermediate
C Interview Preparation
Questions and coding problems asked in C, embedded and systems programming interviews.
Keep going with C
Become a Better Programmer
Get new tutorials, coding challenges, and cheat sheets.