Freigeben über


sizeof Operator (C)

Der sizeof-Operator gibt die Größe des Speichers in Bytes erforderlich, um ein Objekt des Typs des Operanden zu speichern.Dieser Operator ermöglicht es Ihnen, Datengrößen, den MACHINE abhängigen Datei in Programmen anzugeben.

sizeof unary-expression
sizeof ( type-name )

Hinweise

Der Operand ist jeder ein Bezeichner, der ein Unär Ausdruckist, oder ein Ausdruck Typumwandlungs (d. h. ein Typspezifizierer in Klammern eingeschlossen).Unär Der Ausdruck kann ein Bitfeld, einen unvollständigen Typ oder einen Funktionsbezeichner nicht darstellen.Das Ergebnis ist eine vorzeichenlose Ganzzahlkonstante.Der Standardheader STDDEF.H definiert den Typ als size_t.

Wenn Sie den Operator sizeof auf einen Matrixnamen gelten, ist das Ergebnis die Größe des gesamten Arrays, anstatt die Größe des Zeigers, der vom Matrixnamen dargestellt wird.

Wenn Sie den Operator sizeof zu einem Struktur- oder Union-Typ-Namen oder einen Bezeichner der Struktur oder eines Union-Typs gelten, ist das Ergebnis die Anzahl der Bytes in der Struktur oder Union, einschließlich nachfolgender Leerraum und interne.Diese Größe enthält möglicherweise die interne und nachfolgender Leerraum, die verwendet wird, um die Member der Struktur oder Union an Arbeitsspeicher begrenzen.Daher stimmt möglicherweise nicht mit der Größe des Ergebnisses mit den Speicherbeanspruchung der individuellen Mitglieder berechnet wird, hinzugefügt wird.

Wenn ein Array ohne Größenangabe das letzte Element einer Struktur aufweist, gibt der Operator sizeof die Größe der Struktur ohne das Array zurück.

buffer = calloc(100, sizeof (int) );

In diesem Beispiel wird mit dem Operator sizeof , um die Größe von Computern, die unter intals Argument zu übergeben, ist eine Laufzeitfunktion, die callocbenannt ist.Der Wert, der von der Funktion zurückgegeben wird, wird in buffergespeichert.

static char *strings[] ={
          "this is string one",
          "this is string two",
          "this is string three",
         };
const int string_no = ( sizeof strings ) / ( sizeof strings[0] ); 

In diesem Beispiel ist strings ein Array von Zeigern auf char.Die Anzahl von Zeigern ist die Anzahl der Elemente im Array, ist jedoch nicht angegeben.Es ist einfach, die Anzahl von Zeigern zu ermitteln, indem der sizeof-Operator verwendet, um die Anzahl der Elemente im Array zu berechnen.Der ganzzahlige Wert string_noconst wird mit dieser Zahl initialisiert.Da es sich um ein const-Wert ist, kann string_no nicht geändert werden.

Siehe auch

Referenz

C++-Operatoren