English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico de Linguagem C

Controle de Fluxo de Linguagem C

Funções no C

Array no C

Ponteiro no C

String no C

Estruturas de Linguagem C

Arquivos de Linguagem C

Outros C

Manual de Referência do Linguagem C

Operador sizeof() no C

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 papel do operador sizeof()

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

Quando o operando é um tipo de dados.

#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

Quando o operando é uma expressão

#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