![]() |
![]() |
C++ |
G.Eichelsdörfer - Staatliche Technikerschule Weilburg |
Wenn wir eine Variable definieren, so müssen wir uns klar machen, für welchen Zweck die Variable verwendet werden soll. Dieser Zweck entscheidet über den Typ der Variablen. Wenn Sie über einen See fahren wollen, verwenden Sie nicht irgendein beliebiges Fahrzeug. Ein Fahrrad ist dazu denkbar ungeeignet ;-) Weil auch Konstanten einen Typ haben, spricht man statt von einem Variablentyp allgemeiner von einem Datentyp. Für Objekte gilt Entsprechendes. Abhängig von den benötigten Eigenschaften entscheiden wir uns für eine passende Objektklasse.
Es folgt eine Liste von einfachen Datentypen.
Das sind Typen für nicht zusammengesetzte (atomare) Daten, die also nicht weiter
in einzelne Elemente zerlegbar sind. Eine Zerlegung in Bits ist hierbei ausdrücklich
nicht berücksichtigt.
Als einzige Ausnahme wird hier die Objektklasse std::string
aufgeführt.
Hinweis:
Die Größe, die eine Variable im Arbeitsspeicher beansprucht, lässt sich leicht
ermitteln. Hierzu gibt es die Funktion sizeof()
,
der man in den runden Klammern entweder den Variablentyp oder eine definierte
Variable übergeben muss. Sie liefert den Speicherbedarf in Byte.
Ein Byte besteht aus 8 Bit.
Beispiel: cout << sizeof(int) << endl;
gibt die Größe für int-Variable aus.
std::string
ist für aneinandergereihte Zeichen geeignet, also Wörter oder ganze Texte.
Mit strings kann nicht gerechnet werden. Wenn beispielsweise die Zeichenfolge 2004
in einem string-Objekt abgelegt wird, ist das dort keine Zahl, sondern Text.
Ein leeres string-Objekt belegt in VC++ 16 Bytes.
In einem digitalen Computer werden Zahlen nicht als Ziffernfolge, sondern in computergerechter Form abgelegt. Diese spezielle Form dient dazu, dass die Elektronik eines Computers die Zahlen auf effiziente Weise verarbeiten kann.
char
ist für ein einzelnes Zeichen geeignet. In C/C++ kann man mit char
-Daten
auch rechnen lassen. Sie werden durch ein Byte (8 Bit) repräsentiert, was einen
Zahlenbereich von -128 bis +127 ergibt. Je größer ein Zahlenbereich sein soll,
desto mehr Bits muss ein Datentyp verwenden.
int
dient zur Aufnahme von ganzen Zahlen. Die Wortbreite (Anzahl der Datenbits) wird vom
Standard nicht vorgegeben. In VC++ Win32-Anwendungen besteht ein Integerwert aus
4 Byte, also 32 Bit.
Das ergibt einen Zahlenbereich von -231 bis 231-1.
short (int)
sind kurze Ganzzahlen. Das "int" hinter dem "short" kann notiert
werden oder auch nicht. Es ist optional. Der Standard gibt nur vor, dass short
höchstens die gleiche Wortbreite besitzen darf wie int
.
In VC++ Win32-Anwendungen besteht ein short aus 2 Byte, also 16 Bit.
long (int)
sind lange Ganzzahlen. Das "int" hinter dem "long" ist optional.
Der Standard gibt nur vor, dass long
mindestens die gleiche Wortbreite
besitzen muss wie int
.
Aktuell besteht in VC++ eine long-Variable ebenfalls aus 32 Bits, wie eine int-Variable.
Alle obigen in der Sprache verankerten Ganzzahltypen sind mit Vorzeichen behaftet. Für das Vorzeichen wird das "most significant bit" (MSB) verwendet. Das ist das Bit mit dem ansonsten höchsten Stellenwert in einer Ganzzahl.
Will man Variable ohne Vorzeichen verwenden, kann man vor den Typnamen das Wort
unsigned
stellen.
Beispiel: unsigned int Zahl;
Die Variable "Zahl" kann einen Wert zwischen 0 und 232-1 speichern.
Ganzzahlen besitzen absolute Genauigkeit. Allerdings fassen sie keine Nachkommastellen und decken nur einen relativ engen Zahlenbereich ab.
Wenn als Konstante ein langer Ganzzahlwert definiert werden soll, dann ist an den Wert ein "L" oder "l" anzuhängen, beispielsweise 2867L.