Sizeof String Literal
In C berechnet sizeof die Größe eines Datentyps oder Ausdrucks. Bei Anwendung auf ein Zeichenfolgenliteral berechnet sizeof die Länge des Literals, einschließlich des abschließenden Nullzeichens (' ').
Informationen zur Ausgabe
Der bereitgestellte Code berechnet die Größen eines String-Literals, eines const char* const und eines const char[]. Die Ausgabe auf einem mit GCC kompilierten 32-Bit-Betriebssystem lautet:
sizeof(string literal) = 2 sizeof(const char* const) = 4 sizeof(const char[]) = 2
Warum sizeof die Länge des String-Literals berechnet
sizeof("f") wertet aus auf 2, da das Zeichenfolgenliteral aus dem Zeichen „f“ und einer abschließenden Null besteht Zeichen.
Typen in der Größe von Ausdrücken
Vorbehalt: Arrays in sizeof
Beachten Sie, dass Arrays nicht in Zeiger zerfallen, wenn sie an sizeof übergeben werden. Daher gibt sizeof(bar) korrekterweise 2 anstelle der Zeigergröße zurück (4 auf 32-Bit-Betriebssystemen).
Das obige ist der detaillierte Inhalt vonWarum gibt „sizeof' unterschiedliche Werte für String-Literale, Zeiger und Arrays in C zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!