Im Computer werden Daten in binärer Form abgespeichert und ohne genaue Kenntnis der Bedeutung der Bits wäre es unmöglich, diesen Daten einen Wert zuzuordnen. C und C++ löst dies, indem der Programmierer gezwungen wird, jegliche Werte mittels eines eindeutigen Typs zu deklarieren, was man als Typisierung bezeichnet. Hier werden die Typen aufgelistet, welche in C und C++ in die Sprache eingebaut sind. Anhand dieser Typen kann jeder beliebige weitere Typ konstruiert werden. Die Zuweisung eines Typs zu einem Symbol nennt man Deklaration.
C und C++ stellen einige wenige Basistypen zur Verfügung. Sie bilden die Grundbausteine des Typsystems und können mittels erweiterten Typen (siehe weiter unten) zu beliebigen Typen erweitert werden. Basistypen dienen hauptsächlich dazu, arithmetische Werte zu speichern, es gibt aber auch einen Basistyp für logische Werte und sogar einen für Nichts.
Erweiterte Typen erlauben es, Basistypen miteinander zu kombinieren und somit beliebig komplexe Typen zu deklarieren. Durch diese Erweiterungen können sämtliche Typen addressiert, strukturiert, zu Funktionen verpackt, mit Eigenschaften belegt und in generischer Programmierung verwendet werden.