Freigeben über


sizeof Operator

Ergibt die Größe seines Operanden in Bezug auf die Größe des Typs char.

sizeof unary-expression
sizeof ( type-name )

Hinweise

Das Ergebnis des sizeof-Operators ist vom Typ size_t, ein ganzzahliger Typ, der in der Includedatei definiert ist. STDDEF.H.Dieser Operator ermöglicht es Ihnen, Datengrößen, den MACHINE abhängigen Datei in Programmen anzugeben.

Der Operand zu sizeof kann einer der folgenden Werte sein:

  • Ein Typname.Um sizeof mit einem Typnamen zu verwenden, muss der Name in Klammern eingeschlossen werden.

  • Ein Ausdruck.Wenn es mit einem Ausdruck verwendet wird, kann sizeof mit oder ohne Klammern angegeben werden.Der Ausdruck wird nicht ausgewertet.

Wenn der sizeof-Operator in ein Objekt des Typs charangewendet wird, kommt es 1.Wenn der sizeof-Operator auf ein Array angewendet wird, führt es die Gesamtzahl von Bytes Array, dass dadurch nicht die Größe des Zeigers, der vom Matrixnamen dargestellt wird.Zum Abrufen der Größe des Zeigers, der vom Matrixnamen dargestellt wird, führen Sie ihn als Parameter für eine Funktion die sizeofverwendet.Beispiele:

Beispiel

// expre_sizeof_Operator.cpp
// compile with: /EHsc
#include <iostream>

size_t getPtrSize( char *ptr )
{
   return sizeof( ptr );
}

using namespace std;
int main()
{
   char szHello[] = "Hello, world!";

   cout  << "The size of a char is: "
         << sizeof( char )
         << "\nThe length of " << szHello << " is: "
         << sizeof szHello
         << "\nThe size of the pointer is "
         << getPtrSize( szHello ) << endl;
}

Beispielausgabe

The size of a char is: 1
The length of Hello, world! is: 14
The size of the pointer is 4

Wenn der sizeof-Operator zu Klasse, structoder Union-Typ angewendet wird, ist das Ergebnis die Anzahl der Bytes in einem Objekt dieses Typs mit jeder Auffüllung, die hinzugefügt wird, um Wortgrenzen Member auf True.Das Ergebnis nicht notwendigerweise entspricht der Größe, indem die Speicherbeanspruchung der individuellen Mitglieder berechnet wird, hinzugefügt wird.Die /Zp-Compileroption und die Pack Pragma affekt integralen Grenzwerte für Member.

Der sizeof-Operator führt niemals 0, auch für eine leere Klasse.

Der sizeof-Operator kann nicht mit dem nächsten Operanden verwendet werden:

  • Functions.( sizeof , kann jedoch zu Zeigern auf Funktionen angewendet werden.)

  • Bitfelder.

  • Nicht definierte Klassen.

  • Der Typ void.

  • Dynamisch zugeordnete Arrays.

  • Externe Arrays.

  • Unvollständige Typen.

  • Name in Klammern von unvollständigen Typen.

Wenn der sizeof Verweis auf einen Operator angewendet wird, lautet das Ergebnis wie sizeof auf das Objekt selbst angewendet worden wäre.

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.

Der sizeof-Operator ist häufig verwendet, um die Anzahl der Elemente in einem Array mithilfe eines Ausdrucks des Formulars zu berechnen:

sizeof array / sizeof array[0]

Siehe auch

Referenz

Ausdrücke mit unären Operatoren

C++-Schlüsselwörter