English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
L'operatore sizeof() nel linguaggio C determina la dimensione di un'espressione o il numero di unità di memoria di grandezza char specificato per un tipo di dati. L'operatore sizeof() contiene un operando che può essere un'espressione o una conversione di tipo di dati, dove la conversione è racchiusa tra parentesi. Il tipo di dati può essere sia un tipo di dati di base (come i tipi di dati interi o i tipi di dati floating-point) sia un tipo di dati puntatore e un tipo di dati complesso (come unioni e strutture).
Il programma deve sapere la dimensione di archiviazione del tipo di dati originale. Anche se la dimensione di archiviazione del tipo di dati è costante, essa può variare a seconda della piattaforma di implementazione. Ad esempio, possiamo usare l'operatore sizeof() per allocare spazio per un array dinamicamente:
int *ptr = malloc(10 * sizeof(int));
Nell'esempio sopra, abbiamo usato l'operatore sizeof(), applicato alla conversione di tipo int. Usiamomalloc()La funzione assegna memoria e restituisce un puntatore all'indirizzo della memoria allocata. Lo spazio in memoria è uguale al numero di byte utilizzati dal tipo di dati int moltiplicato per 10.
Attenzione:L'output può variare su diversi sistemi operativi, ad esempio, su un sistema operativo a 32 bit viene visualizzato un output diverso, mentre su un sistema operativo a 64 bit viene visualizzato un output diverso per lo stesso tipo di dati.
Il comportamento dell'operatore sizeof() varia a seconda del tipo dell'operando.
L'operando può essere un tipo di dati
L'operando può essere un'espressione
#include <stdio.h> int main() { int x = 89; // Dichiarazione della variabile printf("La dimensione della variabile x è %d", sizeof(x)); //Mostra la dimensione della variabile x printf("\nLa dimensione del tipo di dati integer è %d", sizeof(int)); //Mostra la dimensione del tipo di dati integer. printf("\nLa dimensione del tipo di dati character è %d", sizeof(char)); //Mostra la dimensione del tipo di dati character printf("\nLa dimensione del tipo di dati floating point è %d", sizeof(float)); //Mostra la dimensione del tipo di dati floating point. return 0; }
Nell'esempio sopra, abbiamo usatosizeof()l'operatore per stampare diversi tipi di dati (come int, char, float )diDimensione.
Risultato di output
La dimensione della variabile x è 4 La dimensione del tipo di dati integer è 4 La dimensione del tipo di dati character è 1 La dimensione del tipo di dati floating point è 4
#include <stdio.h> int main() { double i = 78.0; //Inizializzazione della variabile. float j = 6.78; //Inizializzazione della variabile. printf("(i+j) la dimensione dell'espressione è: %d", sizeof(i+j)); //Mostra la dimensione dell'espressione (i + j). return 0; }
Nell'esempio di codice sopra, abbiamo creato due variabili di tipo double e float denominate 'i' e 'j', poi abbiamo utilizzatosizeof(i + j)Stampa l'espressione dell'operatoreDimensione.
Risultato di output
La dimensione dell'espressione (i+j) è: 8