English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O operador sizeof() em C determina o tamanho da expressão ou o número de unidades de armazenamento de tamanho char especificado para o tipo de dados. O operador sizeof() contém um operando, que pode ser uma expressão ou uma conversão de tipo de dados, onde a conversão é feita com parênteses ao redor do tipo de dados. O tipo de dados pode ser não só tipos de dados básicos (como tipos de dados inteiros ou de dados flutuantes), mas também tipos de dados de ponteiros e tipos de dados compostos (como unions e estruturas).
O programa precisa saber o tamanho de armazenamento do tipo de dados original. Embora o tamanho de armazenamento do tipo de dados seja constante, ele pode variar em diferentes plataformas. Por exemplo, podemos usar o operador sizeof() para alocar espaço de array dinamicamente:
int *ptr = malloc(10*sizeof(int));
No exemplo acima, usamos o operador sizeof(), aplicado à conversão do tipo int. Usamosmalloc()A função aloca memória e retorna um ponteiro para o espaço de memória alocado. O espaço de memória é igual ao número de bytes ocupados pelo tipo de dados int e multiplicado por10.
Atenção:As saídas podem variar de máquina para máquina, por exemplo, em32No sistema operacional, mostrará saídas diferentes, em64No sistema operacional, mostrará diferentes saídas para o mesmo tipo de dados.
O comportamento do operador sizeof() depende do tipo do operando.
O operando pode ser um tipo de dados
O operando pode ser uma expressão
#include <stdio.h> int main() { int x =89; //Declaração de variáveis printf("Tamanho da variável x é %d", sizeof(x)); //Exibir o tamanho da variável x printf("\nTamanho do tipo de dados inteiro é %d", sizeof(int)); //Exibir o tamanho do tipo de dados inteiro. printf("\nTamanho do tipo de dados de caractere é %d", sizeof(char)); //Exibir o tamanho do tipo de dados de caractere printf("\nTamanho do tipo de dados de ponto flutuante é %d", sizeof(float)); //para exibir o tamanho do tipo de dados de ponto flutuante. return 0; }
No código acima, usamossizeof()Operadores para imprimir diferentes tipos de dados (como int, char, float )doTamanho.
Resultados de saída
O tamanho da variável x é 4 O tamanho do tipo de dados inteiro é 4 O tamanho do tipo de dados de caractere é 1 O tamanho do tipo de dados de ponto flutuante é 4
#include <stdio.h> int main() { double i =78.0; //Inicialização de variáveis. float j =6.78; //Inicialização de variáveis. printf("(i+j) Tamanho da expressão é : %d", sizeof(i)+j)); //Exibir o tamanho da expressão (i + j)。 return 0; }
No código acima, criamos duas variáveis do tipo double e float, 'i' e 'j', e usamossizeof(i + j)Operador de impressão de expressãoTamanho.
Resultados de saída
(i+Tamanho da expressão: 8