operatore di sizeof
Genera la dimensione del suo operando relativo alla dimensione di tipo char.
sizeof unary-expression
sizeof ( type-name )
Note
Il risultato di sizeof l'operatore è di tipo size_t, un tipo integrale definito nel file di inclusione STDDEF.H.Questo operatore consente di evitare specificare le dimensioni computer-dipendenti di dati nei programmi.
l'operando a sizeof può essere:
Un nome di tipo.Per utilizzare sizeof con un nome di tipo, il nome deve essere racchiuso tra parentesi.
Espressione.una volta utilizzato con un'espressione, sizeof è possibile specificare con o senza le parentesi.L'espressione non viene valutata.
quando sizeof l'operatore è applicabile a un oggetto di tipo char, restituisce 1.quando sizeof l'operatore viene applicato a una matrice, restituisce il numero totale di byte nella matrice, non la dimensione del puntatore rappresentato dall'identificatore di matrice.Per ottenere la dimensione del puntatore rappresentato dall'identificatore di matrice, è necessario passarlo come parametro a una funzione che utilizza sizeof.Di seguito è riportato un esempio:
Esempio
// 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;
}
Esempio di output
The size of a char is: 1
The length of Hello, world! is: 14
The size of the pointer is 4
quando sizeof l'operatore viene applicata a un oggetto classe, struct, o unione il tipo, il risultato è il numero di byte in un oggetto di tale tipo, più il riempimento aggiunti per allineare i membri in una fine di parola.Il risultato necessariamente non corrisponde alla dimensione calcolata aggiungendo i requisiti di archiviazione dei singoli membri./Zp opzione del compilatore e pacchetto limiti di allineamento effetti di pragma per i membri.
sizeof l'operatore non viene mai 0, anche per una classe vuota.
sizeof l'operatore non può essere utilizzato con gli operandi:
funzioni.(Tuttavia, sizeof è possibile applicare ai puntatori a funzioni.)
campi di bit.
Classi non definite.
il tipo void.
matrici dinamicamente allocate.
matrici esterne.
tipi incompleti.
Nomi tra parentesi dei tipi incompleti.
quando sizeof l'operatore viene applicato a un riferimento, il risultato corrisponde a sizeof è stato applicato all'oggetto stesso.
se una matrice non dimensionata è l'ultimo elemento di una struttura, sizeof l'operatore restituisce le dimensioni della struttura senza la matrice.
sizeof l'operatore viene spesso utilizzato per calcolare il numero di elementi in una matrice utilizzando un'espressione del form:
sizeof array / sizeof array[0]