Skip to main content
char-128 bis 1271 Byte%c, %d oder %s
unsigned char0 bis 2551 Byte%c, %d oder %s
short int (short)-32’768 bis 32’7672 Byte%hd
unsigned short int (unsigned short)0 bis 65’5352 Byte%hu
int-2’147’483’648 bis 2’147’483’6474 Byte%d
unsigned int0 bis 4,294,967,2954 Byte%u
long int (long)-2’147’483’648 bis 2’147’483’6474 Byte%ld
unsigned long int (unsigned long)0 bis 4,294,967,2954 Byte%lu
long long int (long long)-9’223’372’036’854’755’808 bis 9’223’372’036’854’755’8078 Byte%lld
unsigned long long int (unsigned long long)0 bis 18,446,744,073,709,551,6158 Byte%llu
float1.2E-38 bis 3.4E+38 (6 Kommastellen)4 Byte%f
double2.3E-308 bis 1.7E+308 (15 Kommastellen)8 Byte%lf
long double3.4E-4932 bis 1.1E+4932 (19 Kommastellen)16 Byte%Lf
bool0 bis 11 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;
printf("%d\n", num);

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;

printf("%c\n", character); // a
printf("%d\n", boolean); // 1

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;
printf("%d\n", num); // 12

Float und Double

Sowohl float, als auch double werden standardmässig mit 6 Dezimalstellen gedruckt.
float floatNum = 12.6;
double doubleNum = 12.6;

printf("%f\n", floatNum); // 12.600000
printf("%lf\n", doubleNum); // 12.600000
Wenn man jedoch die Anzahl der Dezimalstellen ändern möchte, kann man %.nf verwenden, wobei n die Anzahl der Dezimalstellen ist.
printf("%.2f\n", floatNum); // 12.60
printf("%.10lf\n", doubleNum); // 12.6000000000

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:
printf("%c", character);
printf("%s", string);
Wenn wir aber die Nummer von einem char drucken wollen, dann benutzt man %d.
printf("%d", num); // 23
Würde man bei einem Zeichen %d benutzen, würde die entsprechende Zahl auf der ASCII-Tabelle ausgegeben werden.
printf("%d", character); // 97
Man kann auch eine Nummer als Eingabe übergeben und erhält das dazu passende ASCII-Zeichen zurück.
char num = 98;
printf("%c", num); // b

Strings

Man kann direkt mitgeben, wie viel Speicherplatz C für einen String benutzen soll.
char word[20] = "Hello";
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); // Hello
}

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.
printf("%d", isProgrammingFun); // 1
printf("%d\n", isVegetableTasty); // 0