Udostępnij za pośrednictwem


sizeof — operator

Zwraca rozmiar jej argument operacji dotyczących wielkości typu char.

[!UWAGA]

Aby uzyskać informacje na temat sizeof ... operatora, zobacz Wielokropki i szablony wariadyczne.

sizeof unary-expression sizeof  ( type-name )

Uwagi

Wynik sizeof operator jest typu size_t, typu całkowitego zdefiniowane w pliku Dołącz STDDEF.HTen operator umożliwia Unikaj określania wielkości dane zależne od komputera w programach.

Argument operacji do sizeof może mieć jedną z następujących czynności:

  • Nazwa typu.Aby użyć sizeof przy użyciu nazwy typu nazwa musi być ujęta w nawiasy.

  • Wyrażenie.W przypadku użycia z wyrażeniem, sizeof można określić z lub bez nawiasów.Wyrażenie nie jest szacowana.

Gdy sizeof operator jest stosowana do obiektu typu char, jego daje 1.Gdy sizeof operator jest stosowane do tablicy, jego zwraca łączna liczba bajtów w tablicy, nie rozmiaru wskaźnika reprezentowany przez identyfikator tablicy.Uzyskanie rozmiaru wskaźnika reprezentowany przez identyfikator tablicy przekazywany jako parametr do funkcji, która używa sizeof.Na przykład:

Przykład

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

Przykładowe dane wyjściowe

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

Gdy sizeof operator jest stosowana do class, struct, lub union typ, wynikiem jest liczba bajtów w obiekcie tego typu oraz wszelkie uzupełnienia dodana do Dopasuj elementy członkowskie w granicach słowa.Wynik nie musi być odpowiada rozmiar obliczana przez dodanie wymagania magazynu poszczególne elementy członkowskie./Zp opcję kompilatora i pakiet dyrektywę pragma dotyczy granice wyrównanie dla elementów członkowskich.

sizeof Operator nigdy nie zwraca 0, nawet dla klasy puste.

sizeof Operatora nie można używać następujących argumentów:

  • Funkcje.(Jednak sizeof można zastosować do wskaźników funkcji.)

  • Bit pola.

  • Niezdefiniowany klasy.

  • Typ void.

  • Dynamicznie przydzielane tablic.

  • Tablice zewnętrznych.

  • Typy ukończona.

  • Nazwy w nawiasach niekompletny typów.

Gdy sizeof operator dotyczy odwołanie, wynikiem jest taki sam tak, jakby sizeof były stosowane do obiektu.

Jeśli tablica bez określonego rozmiaru jest ostatnim elementem struktury, operator sizeof zwróci rozmiar struktury bez tablicy.

sizeof Operator jest często używany do obliczania liczba elementów w tablicy przy użyciu wyrażenia w postaci:

sizeof array / sizeof array[0]

Zobacz też

Informacje

Wyrażenia z operatorami jednoargumentowymi

Słowa kluczowe języka C++