Einführung in die Datentypen in C
Basisdatentypen in C
Charakter (char)
- Größe: 1 Byte
- Wertebereich: -128 bis 127
Integer (int)
- Mindestgröße: 2 Byte
- Typische Implementierung: 4 Byte
- Wertebereich: -32,768 bis 32,767 (bei 2 Byte)
Weitere Datentypen
Short Integer (short)
- Größe: 2 Byte
- Wertebereich: -32,768 bis 32,767
Long Integer (long)
- Mindestgröße: 4 Byte
- Typische Implementierung: gleich wie
int
Long Long Integer (long long)
- Mindestgröße: 8 Byte
- Wertebereich: deutlich größer als
long
Alternative Bezeichnungen
short
anstelle von short int
long long
anstelle von long long int
Größenermittlung und Wertebereich
Funktion sizeof
- Ermittelt die Größe eines Datentyps in Byte
Vorzeichenlose Datentypen (unsigned)
- Beschränken sich auf positive Werte
- Erweitern den positiven Wertebereich
Modifizierer unsigned
- Voranstellen, um Vorzeichenlosigkeit zu deklarieren
Modifizierer signed
- Standardmäßig angenommen, betont Vorzeichen
Beispielprogramm
#include <stdio.h>
#include <limits.h> // Enthält Definitionen für Größen der Datentypen
int main() {
// Beispiel für Speichergrößen und Wertebereiche
printf("Größe von 'char': %lu Byte\n", sizeof(char));
printf("Wertebereich von 'char': %d bis %d\n", CHAR_MIN, CHAR_MAX);
// Weitere Beispiele...
return 0;
}
Wertebereiche und Überläufe
- Beispiel: Überlauf bei
short int
- Wichtiger Hinweis auf sorgfältige Auswahl und Anwendung von Datentypen
Vorzeichenlose Datentypen
Deklaration und Verwendung
unsigned short
, unsigned int
, unsigned long
- Verdoppeln den positiven Bereich, da negative Zahlen wegfallen
Gleitzahlen (Floating-Point Numbers)
Float
- Größe: 4 Byte
- Wertebereich: ~±3.4e38
- Genauigkeit: ~7 Dezimalstellen
Double
- Größe: 8 Byte
- Wertebereich: ~±1.7e308
- Genauigkeit: ~15 Dezimalstellen
Long Double
- Ähnlich wie
double
in vielen Implementierungen
- Selten verwendet aufgrund mangelnder Unterschiede
Formatierungszeichen für printf
Ganzzahlen
char
: %c
short
: %hd
int
: %d
long
: %ld
long long
: %lld
Vorzeichenlose Ganzzahlen
unsigned char
: %c
unsigned short
: %hu
unsigned int
: %u
unsigned long
: %lu
unsigned long long
: %llu
Gleitzahlen
float
: %f
double
: %lf
long double
: %Lf