Datentypen in C - Integer, Floating Point und Void Explained

Datentypen in C.

Es gibt verschiedene Möglichkeiten, Daten in C zu speichern, und alle sind voneinander einzigartig. Die Datentypen, unter denen Informationen gespeichert werden können, werden als Datentypen bezeichnet. C verzeiht Datentypen viel weniger als andere Sprachen. Daher ist es wichtig sicherzustellen, dass Sie die vorhandenen Datentypen, ihre Fähigkeiten und ihre Einschränkungen verstehen.

Eine Besonderheit der Datentypen von C ist, dass sie vollständig von der Hardware abhängen, auf der Sie Ihren Code ausführen. Ein intauf Ihrem Laptop ist kleiner als ein intauf einem Supercomputer. Daher ist es wichtig, die Einschränkungen der Hardware zu kennen, an der Sie arbeiten. Dies ist auch der Grund, warum die Datentypen als Mindestwerte definiert sind - ein intWert, wie Sie erfahren werden, liegt bei mindestens -32767 bis 32767: Auf bestimmten Computern können noch mehr Werte gespeichert werden, als dies der Fall ist.

Es gibt zwei Kategorien, in die wir dies unterteilen können: Ganzzahlen und Gleitkommazahlen. Ganzzahlen sind ganze Zahlen. Sie können positiv, negativ oder null sein. Zahlen wie -321, 497, 19345 und -976812 sind alle perfekt gültige Ganzzahlen, aber 4.5 ist nicht, weil 4.5 keine ganze Zahl ist.

Gleitkommazahlen sind Zahlen mit einer Dezimalstelle. Wie ganze Zahlen sind auch -321, 497, 19345 und -976812 gültig, aber jetzt sind auch 4.5, 0.0004, -324.984 und andere nicht ganze Zahlen gültig.

Mit C können wir bei unseren Datentypen zwischen verschiedenen Optionen wählen, da sie alle auf unterschiedliche Weise auf dem Computer gespeichert sind. Daher ist es wichtig, die Fähigkeiten und Einschränkungen jedes Datentyps zu kennen, um den am besten geeigneten auszuwählen.

Ganzzahlige Datentypen

Figuren: char

charEnthält Zeichen wie Buchstaben, Interpunktion und Leerzeichen. In einem Computer werden Zeichen als Zahlen gespeichert, sodass charganzzahlige Werte enthalten sind, die Zeichen darstellen. Die tatsächliche Übersetzung wird durch den ASCII-Standard beschrieben. Hier ist ein praktischer Tisch, um das nachzuschlagen.

Die tatsächliche Größe hängt wie bei allen anderen Datentypen in C von der Hardware ab, an der Sie arbeiten. Es sind mindestens 8 Bits, sodass Sie mindestens 0 bis 127 haben. Alternativ können Sie signed charmindestens -128 bis 127 verwenden.

Standard-Ganzzahlen: int

Die Menge an Speicher, die ein einzelner intbenötigt, hängt von der Hardware ab. Sie können jedoch eine intGröße von mindestens 16 Bit erwarten . Dies bedeutet, dass je nach Hardware Werte von -32.768 bis 32.767 oder mehr gespeichert werden können.

Wie alle diese anderen Datentypen gibt es eine unsignedVariante, die verwendet werden kann. Der unsigned intWert kann positiv und null, aber nicht negativ sein, sodass je nach Hardware Werte von 0 bis 65.535 oder mehr gespeichert werden können.

Kurze ganze Zahlen: short

Dies wird nicht oft verwendet, aber es ist gut zu wissen, dass es existiert. Wie int kann es -32768 bis 32767 speichern. Im Gegensatz zu int ist dies jedoch das Ausmaß seiner Fähigkeit. Überall, wo Sie verwenden können short, können Sie verwenden int.

Längere ganze Zahlen: long

Der longDatentyp speichert Ganzzahlen wie int, bietet jedoch einen größeren Wertebereich auf Kosten von mehr Speicher. Long speichert mindestens 32 Bit, was einen Bereich von -2.147.483.648 bis 2.147.483.647 ergibt. Alternativ können Sie unsigned longfür einen Bereich von 0 bis 4.294.967.295 verwenden.

Noch längere ganze Zahlen: long long

Der long longDatentyp ist für nahezu jede Anwendung übertrieben, aber mit C können Sie ihn trotzdem verwenden. Es ist in der Lage, mindestens –9.223.372.036.854.775.807 bis 9.223.372.036.854.775.807 zu speichern. Alternativ erhalten Sie noch mehr Overkill mit unsigned long long, was Ihnen mindestens 0 bis 18.446.744.073.709.551.615 ergibt.

Gleitkommazahl-Datentypen

Grundlegende Gleitkommazahlen: float

float Das Speichern dauert mindestens 32 Bit, ergibt jedoch 6 Dezimalstellen von 1,2E-38 bis 3,4E + 38.

Doppel: double

doublenimmt den doppelten Speicher von float (also mindestens 64 Bit). Im Gegenzug kann double 15 Dezimalstellen von 2,3E-308 bis 1,7E + 308 liefern.

Erhalten Sie eine größere Auswahl an Doppel: long double

long doubledauert mindestens 80 Bit. Als Ergebnis können wir 19 Dezimalstellen von 3.4E-4932 bis 1.1E + 4932 erhalten.

Auswahl des richtigen Datentyps

C macht die Auswahl des Datentyps und macht uns sehr spezifisch und absichtlich, wie wir dies tun. Dies gibt Ihnen viel Macht über Ihren Code, aber es ist wichtig, den richtigen auszuwählen.

Im Allgemeinen sollten Sie das Minimum für Ihre Aufgabe auswählen. Wenn Sie wissen, dass Sie von Ganzzahl 1 bis 10 zählen, brauchen Sie kein Long und kein Double. Wenn Sie wissen, dass Sie niemals negative Werte haben werden, prüfen Sie die Verwendung der unsignedVarianten der Datentypen. Durch die Bereitstellung dieser Funktionalität anstatt automatisch, kann C sehr leichten und effizienten Code erzeugen. Es liegt jedoch an Ihnen als Programmierer, die Fähigkeiten und Einschränkungen zu verstehen und entsprechend zu wählen.

Wir können den Operator sizeof () verwenden, um die Größe einer Variablen zu überprüfen. Informationen zur Verwendung der verschiedenen Datentypen finden Sie im folgenden C-Programm:

#include  int main() { int a = 1; char b ='G'; double c = 3.14; printf("Hello World!\n"); //printing the variables defined above along with their sizes printf("Hello! I am a character. My value is %c and " "my size is %lu byte.\n", b,sizeof(char)); //can use sizeof(b) above as well printf("Hello! I am an integer. My value is %d and " "my size is %lu bytes.\n", a,sizeof(int)); //can use sizeof(a) above as well printf("Hello! I am a double floating point variable." " My value is %lf and my size is %lu bytes.\n",c,sizeof(double)); //can use sizeof(c) above as well printf("Bye! See you soon. :)\n"); return 0; }

Ausgabe:

Hello World!Hello! I am a character. My value is G and my size is 1 byte. Hello! I am an integer. My value is 1 and my size is 4 bytes. Hello! I am a double floating point variable. My value is 3.140000 and my size is 8 bytes. Bye! See you soon. :)

Der Void-Typ

Der void-Typ gibt an, dass kein Wert verfügbar ist. Es wird in drei Arten von Situationen verwendet:

1. Die Funktion wird als ungültig zurückgegeben

Es gibt verschiedene Funktionen in C, die keinen Wert zurückgeben, oder Sie können sagen, dass sie void zurückgeben. Eine Funktion ohne Rückgabewert hat den Rückgabetyp als ungültig. Zum Beispiel,void exit (int status);

2. Funktionsargumente als ungültig

In C gibt es verschiedene Funktionen, die keine Parameter akzeptieren. Eine Funktion ohne Parameter kann eine Leere akzeptieren. Zum Beispiel,int rand(void);

3. Zeiger auf ungültig

Ein Zeiger vom Typ void * repräsentiert die Adresse eines Objekts, nicht jedoch seinen Typ. Beispielsweise gibt eine Speicherzuweisungsfunktion void *malloc( size_t size);einen Zeiger auf void zurück, der in einen beliebigen Datentyp umgewandelt werden kann.