Datentypen
char
-128 bis 127
1 Byte
%c
, %d
oder %s
unsigned char
0 bis 255
1 Byte
%c
, %d
oder %s
short int
(short
)
-32'768 bis 32'767
2 Byte
%hd
unsigned short int
(unsigned short
)
0 bis 65'535
2 Byte
%hu
int
-2'147'483'648 bis 2'147'483'647
4 Byte
%d
unsigned int
0 bis 4,294,967,295
4 Byte
%u
long int
(long
)
-2'147'483'648 bis 2'147'483'647
4 Byte
%ld
unsigned long int
(unsigned long
)
0 bis 4,294,967,295
4 Byte
%lu
long long int
(long long
)
-9'223'372'036'854'755'808 bis 9'223'372'036'854'755'807
8 Byte
%lld
unsigned long long int
(unsigned long long
)
0 bis 18,446,744,073,709,551,615
8 Byte
%llu
float
1.2E-38 bis 3.4E+38 (6 Kommastellen)
4 Byte
%f
double
2.3E-308 bis 1.7E+308 (15 Kommastellen)
8 Byte
%lf
long double
3.4E-4932 bis 1.1E+4932 (19 Kommastellen)
16 Byte
%Lf
bool
0 bis 1
1 Byte
%d
Spezielle Verhaltensweisen
Overflow
Wenn der Wert einer Variablen grösser als ihr Typbereich ist, läuft sie über, d. h. der Wert wird auf den Mindestwert des Typs zurückgesetzt und von dort aus weiter erhöht. Das Gleiche gilt für den umgekehrten Fall.
int num = 3147483647;
Falscher Datentyp
Wenn ein falscher Wert einem falschen Variablentyp zugewiesen wird, wird der Wert in den Typ der Variablen umgewandelt.
int character = 'a';
short boolean = true;
Floats und Integer
Wenn ein Float-Wert einer Integer-Variable zugewiesen wird, werden die Zahlen nach den Kommas ganz einfach abgeschnitten.
int num = 12.6;
Float und Double
Sowohl float
, als auch double
werden standardmässig mit 6 Dezimalstellen gedruckt.
float floatNum = 12.6;
double doubleNum = 12.6;
Wenn man jedoch die Anzahl der Dezimalstellen ändern möchte, kann man %.nf
verwenden, wobei n
die Anzahl der Dezimalstellen ist.
Zeichen
Der Datentyp char
hat noch eine weitere wichtige Funktion, nämlich das Speichern von Zeichen und Zeichenketten.
char num = 23;
char character = 'a';
char string[] = 'Hallo';
Wenn wir ein Zeichen oder eine Zeichenkette in die Konsole printen wollen, dann benutzt man das Formatzeichen %c oder %s:
Wenn wir aber die Nummer von einem char
drucken wollen, dann benutzt man %d
.
Würde man bei einem Zeichen %d
benutzen, würde die entsprechende Zahl auf der ASCII-Tabelle ausgegeben werden.
Man kann auch eine Nummer als Eingabe übergeben und erhält das dazu passende ASCII-Zeichen zurück.
char num = 98;
Strings
Man kann direkt mitgeben, wie viel Speicherplatz C für einen String benutzen soll.
Wenn man char im Nachhinein initialisieren möchte, braucht man eine weitere Bibliothek, <string.h>
.
#include <stdio.h>
#include <string.h>
int main() {
char word[100];
strcpy(word, "Hello");
printf("%s", word);
}
Booleans
Es gibt noch den Datentyp bool
, welcher anzeigen kann, ob eine Aussage true
oder false
ist. Man muss diesen Datentyp über eine externe Bibliothek hinzufügen.
#include <stdbool.h>
Jetzt kann man mit dem Keyword bool
eine Variable deklarieren.
bool isProgrammingFun = true;
bool isVegetableTasty = false;
Diese Variablen kann man mit dem Formatzeichen %d
ausgeben.
Zuletzt aktualisiert
War das hilfreich?