C - Datentypen
Datentypen in c beziehen sich auf ein umfangreiches System, das zum Deklarieren von Variablen oder Funktionen verschiedener Typen verwendet wird. Der Typ einer Variablen bestimmt, wie viel Platz sie im Speicher belegt und wie das gespeicherte Bitmuster interpretiert wird.
Die Typen in C können wie folgt klassifiziert werden −
Sr.No. | Typen &Beschreibung |
---|---|
1 | Basistypen Sie sind arithmetische Typen und werden weiter klassifiziert in:(a) Integer-Typen und (b) Fließkomma-Typen. |
2 | Aufzählungstypen Sie sind wiederum arithmetische Typen und werden verwendet, um Variablen zu definieren, denen im gesamten Programm nur bestimmte diskrete ganzzahlige Werte zugewiesen werden können. |
3 | Der Typ void Der Typbezeichner void zeigt an, dass kein Wert verfügbar ist. |
4 | Abgeleitete Typen Dazu gehören (a) Zeigertypen, (b) Array-Typen, (c) Strukturtypen, (d) Union-Typen und (e) Funktionstypen. |
Die Arraytypen und Strukturtypen werden gemeinsam als Aggregattypen bezeichnet. Der Typ einer Funktion gibt den Typ des Rückgabewerts der Funktion an. Wir werden die grundlegenden Typen im folgenden Abschnitt sehen, während andere Typen in den kommenden Kapiteln behandelt werden.
Integer-Typen
Die folgende Tabelle enthält die Details der Standard-Integer-Typen mit ihren Speichergrößen und Wertebereichen −
Typ | Speichergröße | Wertebereich |
---|---|---|
char | 1 Byte | -128 bis 127 oder 0 bis 255 |
unsigned char | 1 Byte | 0 bis 255 |
vorzeichenbehaftetes Zeichen | 1 Byte | -128 bis 127 |
int | 2 oder 4 Bytes | -32.768 bis 32.767 oder -2.147.483.648 bis 2.147.483.647 |
unsigned int | 2 oder 4 Bytes | 0 bis 65.535 oder 0 bis 4.294.967.295 |
kurz | 2 Byte | -32.768 bis 32.767 |
unsigned short | 2 Byte | 0 bis 65.535 |
lang | 8 Byte oder (4 Byte für 32-Bit-Betriebssystem) | -9223372036854775808 bis 9223372036854775807 |
unsigned long | 8 Byte | 0 bis 18446744073709551615 |
Um die genaue Größe eines Typs oder einer Variablen auf einer bestimmten Plattform zu erhalten, können Sie sizeof verwenden Operator. Die Ausdrücke sizeof(type) liefert die Speichergröße des Objekts oder Typs in Byte. Unten ist ein Beispiel, um die Größe verschiedener Typen auf einer Maschine zu erhalten, indem verschiedene Konstanten verwendet werden, die in der Header-Datei "limits.h" definiert sind −
Live-Demo#include <stdio.h> #include <stdlib.h> #include <limits.h> #include <float.h> int main(int argc, char** argv) { printf("CHAR_BIT : %d\n", CHAR_BIT); printf("CHAR_MAX : %d\n", CHAR_MAX); printf("CHAR_MIN : %d\n", CHAR_MIN); printf("INT_MAX : %d\n", INT_MAX); printf("INT_MIN : %d\n", INT_MIN); printf("LONG_MAX : %ld\n", (long) LONG_MAX); printf("LONG_MIN : %ld\n", (long) LONG_MIN); printf("SCHAR_MAX : %d\n", SCHAR_MAX); printf("SCHAR_MIN : %d\n", SCHAR_MIN); printf("SHRT_MAX : %d\n", SHRT_MAX); printf("SHRT_MIN : %d\n", SHRT_MIN); printf("UCHAR_MAX : %d\n", UCHAR_MAX); printf("UINT_MAX : %u\n", (unsigned int) UINT_MAX); printf("ULONG_MAX : %lu\n", (unsigned long) ULONG_MAX); printf("USHRT_MAX : %d\n", (unsigned short) USHRT_MAX); return 0; }
Wenn Sie das obige Programm kompilieren und ausführen, erzeugt es unter Linux das folgende Ergebnis −
CHAR_BIT : 8 CHAR_MAX : 127 CHAR_MIN : -128 INT_MAX : 2147483647 INT_MIN : -2147483648 LONG_MAX : 9223372036854775807 LONG_MIN : -9223372036854775808 SCHAR_MAX : 127 SCHAR_MIN : -128 SHRT_MAX : 32767 SHRT_MIN : -32768 UCHAR_MAX : 255 UINT_MAX : 4294967295 ULONG_MAX : 18446744073709551615 USHRT_MAX : 65535
Gleitkommatypen
Die folgende Tabelle enthält die Details der Standard-Gleitkommatypen mit Speichergrößen und Wertebereichen und deren Genauigkeit −
Typ | Speichergröße | Wertebereich | Präzision |
---|---|---|---|
schwimmen | 4 Byte | 1.2E-38 bis 3.4E+38 | 6 Dezimalstellen |
doppelt | 8 Byte | 2.3E-308 bis 1.7E+308 | 15 Dezimalstellen |
langes Doppel | 10 Byte | 3.4E-4932 bis 1.1E+4932 | 19 Dezimalstellen |
Die Header-Datei float.h definiert Makros, mit denen Sie diese Werte und andere Details zur binären Darstellung reeller Zahlen in Ihren Programmen verwenden können. Das folgende Beispiel gibt den von einem Float-Typ belegten Speicherplatz und seine Bereichswerte aus −
Live-Demo#include <stdio.h> #include <stdlib.h> #include <limits.h> #include <float.h> int main(int argc, char** argv) { printf("Storage size for float : %d \n", sizeof(float)); printf("FLT_MAX : %g\n", (float) FLT_MAX); printf("FLT_MIN : %g\n", (float) FLT_MIN); printf("-FLT_MAX : %g\n", (float) -FLT_MAX); printf("-FLT_MIN : %g\n", (float) -FLT_MIN); printf("DBL_MAX : %g\n", (double) DBL_MAX); printf("DBL_MIN : %g\n", (double) DBL_MIN); printf("-DBL_MAX : %g\n", (double) -DBL_MAX); printf("Precision value: %d\n", FLT_DIG ); return 0; }
Wenn Sie das obige Programm kompilieren und ausführen, erzeugt es unter Linux das folgende Ergebnis −
Storage size for float : 4 FLT_MAX : 3.40282e+38 FLT_MIN : 1.17549e-38 -FLT_MAX : -3.40282e+38 -FLT_MIN : -1.17549e-38 DBL_MAX : 1.79769e+308 DBL_MIN : 2.22507e-308 -DBL_MAX : -1.79769e+308 Precision value: 6
Der leere Typ
Der void-Typ gibt an, dass kein Wert verfügbar ist. Es wird in drei Arten von Situationen verwendet −
Sr.No. | Typen &Beschreibung |
---|---|
1 | Funktion wird als void zurückgegeben Es gibt verschiedene Funktionen in C, die keinen Wert zurückgeben, oder man kann sagen, dass sie void zurückgeben. Eine Funktion ohne Rückgabewert hat den Rückgabetyp void. Beispiel:void exit (int status); |
2 | Funktionsargumente als ungültig Es gibt verschiedene Funktionen in C, die keine Parameter akzeptieren. Eine Funktion ohne Parameter kann eine Leere akzeptieren. Beispiel:int rand(void); |
3 | Zeiger auf ungültig Ein Zeiger vom Typ void * repräsentiert die Adresse eines Objekts, aber nicht seinen Typ. Beispielsweise eine Speicherzuweisungsfunktion void *malloc( size_t size ); gibt einen Zeiger auf void zurück, der in jeden Datentyp umgewandelt werden kann. |
C Sprache
- Schaltertypen
- C#-Variablen und (primitive) Datentypen
- C++-Datentypen
- C-Datentypen
- Python-Datentypen
- Java-Datentypen (Primitiv)
- C-Variable, Datentypen, Konstanten
- 5 verschiedene Arten von Rechenzentren [mit Beispielen]
- 8 verschiedene Arten von Cloud Computing im Jahr 2021
- 8 verschiedene Arten von Datenschutzverletzungen mit Beispielen