Bei der Deklaration einer Variablen reserviert C++ Speicherplatz wo der Name und der Wert dieser Variablen gespeichert werden. Wie viel Platz belegt wird hängt vom Betriebssystem und vom Datentyp der Variablen ab.
Der Datentyp „int“ zum Beispiel bekommt als long-Variable in der Voreinstellung je nach Compiler einen Platz von 16 Bit, 32 Bit oder sogar 64 Bit zugewiesen. 32-Bit reichen, um Werte zwischen -2147483647 und 2147483647 zu speichern. Ist der Datentyp als short-Variable definiert passen gerade mal Werte zwischen +32767 und -32768 in den Speicher.
[sc name=“adsense_InText_ad“]
Die Größe des Speicherbereichs kann beim Deklarieren der Variable als „int short“ oder „int long“ festgelegt werden, wobei „int short“ oft sinnvoll ist, wenn der Speicherplatz knapp bemessen und die Wertebereich ausreichend ist. Eine Integer-Variable die positive oder negative Werte enthalten kann wird als „signed int“ bezeichnet. Enthält eine Variable nur positive Werte, kann sie als „unsigned int“ verwendet werden, was den Wertebereich auf 0 (Null) bis 65535 vergrößert. Eine Variable „unsigned long int“ kann Werte vom 0 bis 4294967295 enthalten.
Die Größe des Speicherplatzes einer Variablen kann in C++ durch den sizeof-Operator ermittelt werden. Dabei steht der Name der zu überprüfenden Variable in der Klammer hinter dem Operator. Die genaue Syntax lautet:
sizeof(var);
Genau genommen benötigt der sizeof-Operator keine Klammer, die Schreibweise
sizeof var;
würde auch funktionieren. Die meisten Programmierer verwenden jedoch die Variante mit der Klammer, der den Operator wie eine Funktion aussehen lässt.
Der sizeof-Operator gibt die Anzahl Bytes als Integer-Wert zurück, die unter dem Variablennamen gespeichert sind. Einfache Datentypen wie char oder bool brauchen nur ein Byte Speicherplatz. Längere numerische Variablen brauchen mehr Platz, wie viel hängt vom möglichen Zahlenbereich ab, der durch den Datentyp bestimmt wird.
Der Speicherplatz eines Arrays ist ein Vielfaches von dem Platz, der von einem einzelnen Element beansprucht wird. Ein int-Array mit 50 Elementen beansprucht also 50 Mal den Speicherplatz eines Elements. Wie der sizeof-Operator funktioniert, demonstriert das folgende kleine Programm.
Übung: Der Sizeof-Operator
Programm: sizeoff.cpp
#include <iostream> using namespace std ; int main() { int num; int nums [50]; float dezimal; bool isTrue; unsigned int max; char buchstabe; double pi; short int nummer; char buchstaben [50]; cout << "int size: " << sizeof( num ) << endl ; cout << "50 int size: " << sizeof( nums ) << endl ; cout << "short int size: " << sizeof( nummer ) << endl ; cout << "unsigned int size: " << sizeof( max ) << endl ; cout << "double size: " << sizeof( pi ) << endl ; cout << "float size: " << sizeof( dezimal ) << endl ; cout << "char size: " << sizeof( buchstabe ) << endl ; cout << "50 char size: " << sizeof( buchstaben ) << endl ; cout << "bool size: " << sizeof( isTrue ) << endl ; system("pause"); return 0 ; }
Speichern Sie das Programm, kompilieren Sie es anschließend und schauen Sie sich das Ergebnis an.
Dieser Artikel ist Teil unseres kostenlosen Workshops “C++ Programmieren lernen” – Geeignet für Einsteiger und Fortgeschrittene. Machen auch Sie mit und lernen Sie in 50 Artikeln, wie Sie Programme selbst schreiben!
Artikelbild: Fotolia / bramgino