Heim >Backend-Entwicklung >C++ >Warum unterscheidet sich „sizeof('a')' in C und C?
Beim Untersuchen der Ausgabe des Code-Snippets:
#include <stdio.h> int main(void) { printf("sizeof(char) = %zu\n", sizeof(char)); printf("sizeof('a') = %zu\n", sizeof('a')); }
man könnte bemerken dass die Größe der Zeichenkonstante 'a' zwischen C und C unterschiedlich ist. Schauen wir uns die Gründe für diese Ungleichheit genauer an.
In C wird eine Zeichenkonstante wie „a“ als int gespeichert, das eine Größe von 4 Bytes oder einen umsetzungsspezifischen Wert hat. In C ist der Typ von „a“ jedoch explizit char, der nur 1 Byte einnimmt.
Diese Unterscheidung ergibt sich aus der unterschiedlichen Behandlung von Zeichenkonstanten in den beiden Sprachen. C behandelt Zeichenkonstanten als Ganzzahlen (vom Typ int), während C einen separaten char-Typ für Zeichen einführt.
Daher wird „a“ in C als Ganzzahl gespeichert, was seine 4-Byte-Größe erklärt. Im Gegensatz dazu ist „a“ in C ein Zeichen (char), was zu einer Größe von 1 Byte führt. Dieser Unterschied unterstreicht eine der subtilen Variationen zwischen den beiden Sprachen.
Das obige ist der detaillierte Inhalt vonWarum unterscheidet sich „sizeof('a')' in C und C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!