sizeof – operátor

Poskytuje velikost jeho operand s ohledem na velikost typu char.

[!POZNÁMKA]

Informace o sizeof ... operátoru, podívejte se na téma Tři tečky a variadické šablony.

sizeof unary-expression sizeof  ( type-name )

Poznámky

Výsledek sizeof operátor je typu size_t, integrální typ. definována v souboru zahrnout STDDEF.H.Tento operátor umožňuje neurčujte objemy dat závislé na počítače ve svých programech.

Operand pro sizeof může mít jednu z následujících akcí:

  • Název typu.Chcete-li použít sizeof s názvem typu, název musí být uzavřena v uvozovkách.

  • Výraz.Při použití s výrazem, sizeof lze zadat s nebo bez závorek.Výraz není vyhodnocena.

Pokud sizeof operátor se použije pro objekt typu char, bude vrácen 1.Pokud sizeof operátor se použije pro pole, bude vrácen celkový počet bajtů v daném poli, nikoli na velikost ukazatel myši nad reprezentována identifikátor pole.Chcete-li získat velikost ukazatel myši nad reprezentována identifikátor pole, předejte jí jako parametr funkce, která používá sizeof.Příklad:

Příklad

#include <iostream>
using namespace std;

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

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;
}

Vzorový výstup

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

Když sizeof je použit operátor class, struct, nebo union typu, výsledkem je počet bajtů v objektu daného typu a navíc jakékoli odsazení přidán do zarovnat členů na hranice slova.Výsledek nemusí být neodpovídá velikosti vypočítána přidáním požadavky na úložiště jednotlivých členů./Zp možnosti kompilátoru a pack pragma ovlivnit zarovnání hranice pro členy.

sizeof Operátor nikdy dává 0, a to i v případě prázdné třídy.

sizeof Operátor nelze použít s tímto operandy:

  • Funkce.(Však sizeof lze použít na ukazatele na funkce.)

  • Bit pole.

  • Nedefinovaný třídy.

  • Typ void.

  • Dynamicky přiřazovány pole.

  • Externí pole.

  • Neúplný typy.

  • V závorce názvy typů neúplný.

Při sizeof operátor se použije pro odkaz, výsledkem je stejná jako kdyby sizeof kdyby byla použita v samotného objektu.

Je-li posledním prvkem struktury pole bez velikosti, operátor sizeof vrátí velikost struktury bez tohoto pole.

sizeof Operátor se často používá k výpočtu počet prvků v poli pomocí výrazu ve formátu:

sizeof array / sizeof array[0]

Viz také

Referenční dokumentace

Výrazy s unárními operátory

Klíčová slova jazyka C++