operatore di sizeof (C)
sizeof l'operatore viene fornita la quantità di memoria fisica, in byte, di associazione per memorizzare un oggetto del tipo dell'operando.Questo operatore consente di evitare specificare le dimensioni computer-dipendenti di dati nei programmi.
sizeof unary-expression
sizeof ( type-name )
Note
L'operando è un identificatore che rappresenta un'unario-espressione, o un'espressione di cast di tipo (ovvero un identificatore di tipo tra parentesi).unario-espressione non può rappresentare un oggetto del campo di bit, un tipo incompleto, o un indicatore di funzione.il risultato è una costante integrale senza segno.L'intestazione standard STDDEF.H definisce questo tipo come size_t.
Quando si applica sizeof l'operatore a un identificatore di matrice, il risultato è la dimensione dell'intera matrice anziché la dimensione del puntatore rappresentato dall'identificatore di matrice.
Quando si applica sizeof l'operatore a un nome di tipo di struttura o di unione, o a un identificatore del tipo di struttura o di unione, il risultato è il numero di byte nella struttura o nell'unione, inclusi spaziatura interna e finale.Questa dimensione può includere la spaziatura interna e finale utilizzato per allineare i membri della struttura o un'unione sui limiti della memoria.Pertanto, il risultato potrebbe non corrispondere alla dimensione calcolata aggiungendo i requisiti di archiviazione dei singoli membri.
se una matrice non dimensionata è l'ultimo elemento di una struttura, sizeof l'operatore restituisce le dimensioni della struttura senza la matrice.
buffer = calloc(100, sizeof (int) );
In questo esempio viene utilizzato sizeof operatore per passare le dimensioni di un oggetto int, compreso tra i computer, come argomento di una funzione in fase di esecuzione denominata calloc.Il valore restituito dalla funzione viene archiviato in buffer.
static char *strings[] ={
"this is string one",
"this is string two",
"this is string three",
};
const int string_no = ( sizeof strings ) / ( sizeof strings[0] );
in questo esempio, strings è una matrice di puntatori a char.Il numero dei puntatori è il numero di elementi nella matrice, ma non è specificato.È facile determinare il numero dei puntatori utilizzando sizeof operatore per calcolare il numero di elementi nella matrice.const valore Integer string_no viene inizializzato con questo numero.Poiché è un oggetto const valore, string_no non può essere modificato.