Nearby lessons
1 of 124C - Overview
A bird's-eye view of the C programming language — what it is, where it is used, how a C program becomes a running program, and the exact order in which you should learn the topics in this tutorial.
What is C?
C is a general-purpose, procedural programming language developed by Dennis Ritchie at Bell Laboratories in 1972. It was created to write the UNIX operating system, and it is still the language of choice whenever a program has to be small, fast, and close to the hardware.
C is compiled, not interpreted: a compiler translates your entire source file into machine code once, and the resulting executable runs directly on the CPU. That is why C programs are dramatically faster than programs written in interpreted languages.
Why C is called a Middle-Level Language
Languages are often grouped by how far they sit from the hardware. C is unusual because it lives in both worlds:
| Level | Examples | What you control |
|---|---|---|
| Low-level | Assembly, machine code | Individual CPU instructions and registers |
| Middle-level | C | Readable statements plus direct memory addresses via pointers |
| High-level | Python, Java, JavaScript | Logic only — memory is managed for you |
Pointers, sizeof, and bitwise operators give you low-level power. Functions, loops, and structures give you high-level readability.
Your First Look at a C Program
Every C program has the same skeleton. Read this one before you understand it — you will meet each piece again in its own lesson:
How C Code Becomes a Program
When you press Run, four separate tools work in sequence. Knowing their names makes error messages far easier to read:
| Stage | Tool | What it does |
|---|---|---|
| 1. Preprocessing | Preprocessor | Handles #include and #define, strips comments |
| 2. Compiling | Compiler | Turns C into assembly; reports syntax errors |
| 3. Assembling | Assembler | Turns assembly into an object file (.o) |
| 4. Linking | Linker | Joins your object file with library code into an .exe |
Where C is Used Today
- Operating systems — the Linux and Windows kernels are largely C.
- Embedded systems — washing machines, cars, pacemakers, microcontrollers.
- Databases — MySQL, PostgreSQL, SQLite, Redis.
- Language runtimes — CPython, the JVM, and Node.js are written in C/C++.
- Compilers and tools — GCC itself compiles C with C.
How to Learn C — The Roadmap
Follow the sidebar top to bottom. The order is deliberate: every topic uses only what came before it.
- Setup — install a compiler and run your first program.
- Basics — comments, keywords, identifiers, variables, data types, input and output.
- Operators — arithmetic through bitwise, plus precedence.
- Control flow —
if,switch, and the three loops. - Data collections — arrays and strings.
- Functions — split a program into reusable blocks.
- Pointers — the topic that unlocks real C.
- Custom types — structures, unions,
typedef,enum. - Files — make your data survive after the program exits.
- C is a general-purpose, procedural, compiled language created in 1972.
- It is called a "middle-level" language: high-level syntax, low-level memory control.
- Every C program starts executing at main().
- Source code → preprocessing → compiling → assembling → linking → executable.
- Almost every modern language (Java, Python, C++, C#) borrows C syntax.