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]