C++ Variablentypen: Speicher, Limits & Operationen
Eine Variable bietet benannten Speicher, den unsere Programme manipulieren können. Jede Variable in C++ hat einen spezifischen Typ, der bestimmt:
- Größe und Layout des Speichers
- Wertebereich, der gespeichert werden kann
- Menge der anwendbaren Operationen
Variablennamen bestehen aus Buchstaben, Ziffern und Unterstrich, müssen mit Buchstabe oder Unterstrich beginnen. Groß-/Kleinschreibung wird unterschieden (case-sensitive).
Grundlegende Variablentypen
| Nr. | Typ & Beschreibung |
|---|---|
| 1 | bool – speichert true oder false |
| 2 | char – typischerweise ein Oktett (1 Byte), ein Integer-Typ |
| 3 | int – die natürlichste Integer-Größe für die Maschine |
| 4 | float – einfach präziser Gleitkommawert |
| 5 | double – doppelt präziser Gleitkommawert |
| 6 | void – repräsentiert Abwesenheit eines Typs |
| 7 | wchar_t – breiter Zeichentyp |
C++ erlaubt weitere Typen: Enumeration, Pointer, Array, Reference, Datenstrukturen, Klassen – diese folgen in späteren Kapiteln.
Variablendefinition in C++
Eine Variablendefinition teilt dem Compiler mit, wo und wie viel Speicher erstellt wird. Syntax:
typ variablen_liste;
typ muss ein gültiger C++-Datentyp sein (char, wchar_t, int, float, double, bool oder benutzerdefiniert). variablen_liste besteht aus einem oder mehreren Bezeichnern, durch Kommas getrennt.
Gültige Beispiele:
int i, j, k;
char c, ch;
float f, salary;
double d;
int i, j, k; deklariert und definiert die Variablen i, j, k als int.
Initialisierung bei der Deklaration
Variablen können initialisiert werden (Anfangswert zuweisen):
typ variablen_name = wert;
Beispiele:
extern int d = 3, f = 5; // Deklaration von d und f
int d = 3, f = 5; // Definition & Initialisierung
byte z = 22; // Definition & Initialisierung
char x = 'x'; // Variable x hat Wert 'x'
Ohne Initialisierer: Variablen mit statischer Speicherdauer werden implizit mit NULL (alle Bytes = 0) initialisiert; alle anderen haben undefinierten Anfangswert.
Variablendeklaration in C++
Eine Deklaration versichert dem Compiler, dass eine Variable mit gegebenem Typ und Namen existiert, damit die Kompilierung fortgesetzt werden kann, ohne vollständige Details zu benötigen. Die eigentliche Definition wird zur Linkzeit benötigt.
Nützlich bei mehreren Dateien: Variable in einer Datei definieren, in anderen mit extern deklarieren. Mehrfache Deklarationen erlaubt, aber nur eine Definition pro Datei/Funktion/Block.
Beispiel
#include <iostream>
using namespace std;
// Variablendeklaration:
extern int a, b;
extern int c;
extern float f;
int main() {
// Variablendefinition:
int a, b;
int c;
float f;
// eigentliche Initialisierung
a = 10;
b = 20;
c = a + b;
cout << c << endl;
f = 70.0/3.0;
cout << f << endl;
return 0;
}
Ausgabe:
30
23.3333
Dasselbe gilt für Funktionsdeklarationen: Name bei Deklaration, Definition woanders.
Lvalues und Rvalues
Zwei Arten von Ausdrücken in C++:
lvalue – Ausdrücke, die auf eine Speicheradresse verweisen. Darf links oder rechts einer Zuweisung stehen.
rvalue – Bezeichnet einen Datenwert, der an einer Speicheradresse liegt. Darf nicht links einer Zuweisung stehen (kein Ziel).
Variablen sind lvalues. Numerische Literale sind rvalues.
int g = 20; // gültig
10 = 20; // ungültig – Compile-Fehler
C Sprache
- C++-Operatoren meistern: Ein vollständiger Leitfaden mit praktischen Beispielen
- Java Primitive Datentypen: Vollständiger Leitfaden mit Beispielen
- C++ Variablen und Datentypen: Experten‑Guide zu int, double, char, string, bool
- C++ Operatoren erklärt: Typen, Beispiele und Beispielprogramme
- C++ Zeiger meistern: Konzepte, Beispiele & praktische Anwendungen
- C++ char‑Datentyp meistern: Deklaration, ASCII & Konvertierungstechniken
- Zeiger in C: Umfassender Leitfaden zu Typen, Verwendung und Best Practices
- Java Variablentypen verstehen: Ein umfassender Leitfaden
- Variablen in C verstehen: Typen, Benennungsregeln & Speicherverwaltung
- C++ Variablentypen: Speicher, Limits & Operationen