C

A low-level systems language that underpins most other languages.

CurrentintermediateFull course available

Overview

C gives direct control over memory and hardware with minimal abstraction. Operating systems, language runtimes, and embedded systems are commonly written in C -- understanding it demystifies what higher-level languages (Python, JavaScript) are doing underneath.

What it is
A statically-typed, compiled, low-level language with manual memory management.
Why it's used
For systems programming, performance-critical code, and embedded devices where you need direct memory/hardware control.
Where it fits
After general programming basics, ideally alongside a data structures course -- C makes memory layout and pointers concrete.

Core concepts

  • Pointers and memory addresses
  • Manual memory management (malloc/free)
  • Arrays and structs
  • Compilation to machine code

Example

Every variable has an explicit type and a fixed memory size -- there's no garbage collector; the programmer is responsible for memory C dynamically allocates.

int add(int a, int b) {
    return a + b;
}

int main() {
    int result = add(2, 3);
    return 0;
}

Common use cases

  • Operating systems and drivers
  • Embedded systems
  • Performance-critical libraries

Project ideas

  • A simple linked-list implementation, managing memory manually

Official references