C Programming

You need a Linux-based development environment to follow through with this course. There are at least three ways to do it.

  1. Install a Linux distribution on your computer natively.
  2. Install Cygwin on your Windows installation.
  3. Install the Windows Subsystem for Linux on your Windows installation.

You should then be able to use a code editor like VSCode or CLion. You can also choose to work purely from the command line.

A Very Gentle Introduction to C Make sure you try out every code example given in the above post. Please do not proceed if you have not done that.

Then read the following posts in the given order. Ensure you try out the example code in every article.

  1. Structure of a C program
  2. Our very own printf!
  3. Types in C
  4. Type promotion in C
  5. Loops in C
  6. What is true and what is false?
  7. What handles operations in C?
  8. Know your / operator more
  9. Know your % from close quarters
  10. Are you logical?
  11. Let's take it bitwise!
  12. Know your , operator well!
  13. Who wins?
  14. How do functions work in C?
  15. Disciplined storage: Arrays
  16. Strings in C are special!
  17. If you are bored with if-then-else, just switch
  18. You need structures!
  19. Unions aren't always scary!
  20. Introduction to Pointers
  21. Let's name our integer values: Enums
  22. Different mains
  23. String and Character Library Functions
  24. Some pointers on pointers
  25. Even pointers have to do maths!
  26. What's in a name?
  27. Basic Input/Output Channels
  28. Size matters!
  29. Build your structures differently
  30. Build your arrays differently too!
  31. Constant Pointer vs. Pointer to a Constant
  32. Where do your variables live?
  33. You want to input a string with spaces?
  34. Files as databases: writing and reading files
  35. Cat in C
  36. Advanced Maths Functions
  37. Need more memory? Dynamic memory to the rescue!
  38. Function pointers are easy!
  39. Do you really understand #include?
  40. #define should be used more often
  41. Pros use Conditional Compilation
  42. Tell them if you cannot compile! #error
  43. How does preprocessed code look?
  44. Pragmas are all about hints!
  45. I can do it all! Struct + Array + Dynamic Allocation + Pointer Arithmetic
  46. Simple debugging with gdb
  47. A simple Makefile
  48. What is the C library?
  49. Which library do I need?