C - Introduction

Brief history from Wikipedia

C is a general-purpose, imperative programming language that supports structured programming, lexical scope, and recursion. It was designed to map closely to machine instructions, enabling efficient, portable systems programming across platforms—from embedded devices to supercomputers.

Originally developed by Dennis Ritchie at Bell Labs (1969–1973) and used to re-implement Unix, C has influenced many languages and remains widely used. The language is standardized by ANSI (since 1989) and ISO.

Why learn C?

  • Build a deep understanding of how memory and the stack/heap work.
  • Write portable, efficient code with tight control over performance.
  • Prepare for systems programming, operating systems, embedded, and performance-critical apps.

Learning Objectives

  • Explain what a compiler, linker, and executable are at a high level.
  • Describe the structure of a simple C program (headers, main function).
  • Run your first C program from the terminal.

Prerequisites

What you'll do next

  1. Compile and run Hello World.
  2. Learn about variables, types, operators, and control flow.
  3. Work up to pointers, memory management, and data structures.

Checks for Understanding

  1. What role does a compiler play? What about a linker?
  2. Where does a C program start executing?
Show answers
  1. The compiler translates C source to object code; the linker resolves references and produces an executable.
  2. Execution starts at the main function.