What's Next?
Congratulations
You have completed all 18 lessons. You now have a solid foundation in C: variables, types, control flow, switch statements, enums, bitwise operators, functions, arrays, strings, pointers, and structs.
That is a real accomplishment. C is not easy, and understanding it gives you a deep appreciation for how software works at the system level.
What to Explore Next
Here are topics to dive deeper into:
- Dynamic memory allocation --
malloc,free,calloc,reallocfor heap-allocated memory. - File I/O --
fopen,fread,fwrite,fprintffor reading and writing files. - Preprocessor --
#define,#ifdef,#includefor compile-time configuration. - Linked lists -- Build dynamic data structures with structs and pointers.
- Header files -- Organize larger programs across multiple files.
- Makefiles -- Build systems for C projects.
Build Something
The best way to learn is to build. Some project ideas:
- A command-line calculator -- parse and evaluate arithmetic expressions
- A linked list library -- insert, delete, search, and sort operations
- A simple shell -- read commands, fork processes, and execute programs
- A memory allocator -- implement your own
mallocandfree
References
- The C Programming Language by Brian Kernighan and Dennis Ritchie (Prentice Hall, 1988) -- the definitive C book, still relevant today.
- C Reference -- comprehensive online reference for the C standard library.
- Beej's Guide to C Programming -- free online guide, well-written and practical.
- Modern C by Jens Gustedt -- a modern take on C programming.
- CS:APP -- Computer Systems: A Programmer's Perspective covers how C maps to machine code.