sizeof
– operátor
Získá velikost svého operandu vzhledem k velikosti typu char
.
Poznámka:
Informace o operátoru sizeof ...
naleznete v tématu Tři tečky a variadické šablony.
Syntaxe
sizeof unary-expression
sizeof ( type-name )
Poznámky
Výsledek operátoru sizeof
je typu size_t
, celočíselný typ definovaný v souboru include <stddef.h>. Tento operátor vám umožní vyhnout se zadávání velikostí dat závislých na počítačích v programech.
Operand sizeof
může být jeden z následujících:
Název typu. Chcete-li použít
sizeof
s názvem typu, musí být název uzavřen v závorkách.Výraz. Při použití s výrazem
sizeof
je možné zadat s závorkou nebo bez závorek. Výraz se nevyhodnocuje.
sizeof
Pokud je operátor použit na objekt typu char
, získá 1. sizeof
Pokud je operátor použit na matici, získá celkový počet bajtů v dané matici, nikoli velikost ukazatele reprezentované identifikátorem pole. Chcete-li získat velikost ukazatele reprezentované identifikátorem pole, předejte ji jako parametr funkci, 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;
}
Ukázkový výstup
The size of a char is: 1
The length of Hello, world! is: 14
The size of the pointer is 4
sizeof
Pokud se operátor použije u operátoru class
, struct
nebo union
typu, je výsledkem počet bajtů v objektu tohoto typu a všechny odsazení přidané k zarovnání členů na hranicích slova. Výsledek nemusí nutně odpovídat velikosti vypočítané přidáním požadavků na úložiště jednotlivých členů. Možnost kompilátoru /Zp a pragma balíčku ovlivňují hranice zarovnání členů.
Operátor sizeof
nikdy nevolí 0, ani pro prázdnou třídu.
Operátor sizeof
nelze použít s následujícími operandy:
Functions. (Lze však
sizeof
použít u ukazatelů na funkce.)Bitová pole.
Nedefinované třídy.
Typ
void
.Dynamicky přidělená pole.
Externí pole.
Neúplné typy
Závorky s názvy neúplných typů
sizeof
Pokud je operátor použit na odkaz, výsledek je stejný, jako kdyby sizeof
byl použit na samotný objekt.
Je-li posledním prvkem struktury pole bez velikosti, operátor sizeof
vrátí velikost struktury bez tohoto pole.
Operátor sizeof
se často používá k výpočtu počtu prvků v poli pomocí výrazu formuláře:
sizeof array / sizeof array[0]
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro