All paths
CBeginner

C — Fundamentals

Learn C from scratch: the fast, close-to-the-metal language behind operating systems, databases and embedded devices. You'll truly understand memory, pointers and performance. Real executable code, compiled and run on the server.

16 chapters48 lessons80 challenges

Course curriculum

Chapter 1: Your first C program

  • The C language
  • Printing with printf
  • First-program mistakes

Chapter 2: Variables and types

  • The basic types
  • Printing variables
  • Type and variable pitfalls

Chapter 3: Operators

  • Arithmetic operators
  • Comparisons and logic
  • Operator pitfalls

Chapter 4: Control flow

  • if, else, else if
  • switch
  • if and switch pitfalls

Chapter 5: Loops

  • for and while
  • break and continue
  • Loop pitfalls

Chapter 6: Functions

  • Defining a function
  • void and recursion
  • Function pitfalls

Chapter 7: Arrays

  • Declaring and using arrays
  • Arrays and loops
  • Array pitfalls

Chapter 8: Strings

  • Strings in C
  • string.h
  • String pitfalls

Chapter 9: Pointers — the basics

  • What is a pointer
  • Modifying through a pointer
  • Pointer pitfalls

Chapter 10: Pointers and arrays

  • Arrays and pointers
  • p[i] is *(p+i)
  • Pointer-and-array pitfalls

Chapter 11: Dynamic memory

  • malloc and free
  • calloc, realloc and NULL
  • Dynamic-memory pitfalls

Chapter 12: Structs and typedef

  • Structs
  • typedef
  • Struct pitfalls

Chapter 13: Pointers to structs

  • The -> operator
  • Arrays of structs and functions
  • Struct-pointer pitfalls

Chapter 14: Linked lists

  • Building a list
  • Walking a list
  • Linked-list pitfalls

Chapter 15: Bitwise operators and the preprocessor

  • Bitwise operators
  • The preprocessor
  • Bit and preprocessor pitfalls

Chapter 16: Advanced topics and interview

  • Function pointers
  • const, qsort and recap
  • Interview pitfalls (and undefined behavior)

Ready to level up?

Create a free account and start now: earn XP on every challenge and climb the leaderboard.

C — Fundamentals — LevelUpCode