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

Tutorial básica de lenguaje C

Control de flujo de lenguaje C

Funciones de C

Arreglos de C

Punteros de C

Cadenas de C

Estructura de lenguaje C

Archivo de lenguaje C

C otros

Manual de referencia de C

Operador sizeof() de C

El operador sizeof() en el lenguaje C determina el tamaño de una expresión o el número de unidades de almacenamiento de tamaño char especificado para un tipo de datos. El operador sizeof() contiene un operando, que puede ser una expresión o una conversión de tipo de datos, donde la conversión se realiza entre paréntesis. Los tipos de datos pueden ser no solo tipos de datos básicos (como enteros o tipos de datos flotantes), sino también tipos de datos de puntero y tipos de datos compuestos (como uniones y estructuras).

El operador sizeof() tiene la función

El programa debe saber el tamaño de almacenamiento del tipo de datos original. A pesar de que el tamaño de almacenamiento del tipo de datos es constante, puede variar en la implementación en diferentes plataformas. Por ejemplo, podemos usar el operador sizeof() para asignar espacio de array dinámicamente:

int *ptr=malloc(10*sizeof(int));

En el ejemplo anterior, utilizamos el operador sizeof(), que se aplica a la conversión de tipos de datos int. Usamosmalloc()La función asigna memoria y devuelve un puntero al espacio de memoria asignado. El espacio en memoria es igual al número de bytes ocupados por el tipo de datos int multiplicado por10。

Nota:Las salidas pueden variar en diferentes máquinas, por ejemplo en32En los sistemas operativos de bits, se mostrarán diferentes salidas, en64En los sistemas operativos de bits, se mostrarán diferentes salidas para el mismo tipo de datos.

El comportamiento del operador sizeof() depende del tipo del operando.

  • El operando puede ser un tipo de datos

  • El operando puede ser una expresión

Cuando el operando es un tipo de datos.

#include <stdio.h>
int main()
{
    int x=89;    //Declaración de variables
    printf("El tamaño de la variable x es %d", sizeof(x));  //para mostrar el tamaño de la variable x
    printf("\nEl tamaño de los tipos de datos enteros es %d", sizeof(int)); //para mostrar el tamaño de los tipos de datos enteros.
    printf("\nEl tamaño de los tipos de datos de caracteres es %d", sizeof(char)); //para mostrar el tamaño de los tipos de datos de caracteres
    printf("\nEl tamaño de los tipos de datos flotantes es %d", sizeof(float)); //para mostrar el tamaño de los tipos de datos flotantes.
return 0;
}

En el código anterior, utilizamossizeof()operadores para imprimir diferentes tipos de datos (como int, char, float deTamaño

Resultados de salida

El tamaño de la variable x es 4
El tamaño de los tipos de datos enteros es 4
El tamaño de los tipos de datos de caracteres es 1
El tamaño de los tipos de datos de datos flotantes es 4

Cuando el operando es una expresión

#include <stdio.h>
int main()
{
  double i=78.0; //Inicialización de variables.
  float j=6.78; //Inicialización de variables.
  printf("(i+j) El tamaño de la expresión es : %d", sizeof(i)+j)); //Mostrar el tamaño de la expresión (i + j)。
  return 0;
}

En el código anterior, creamos dos variables de tipo double y float llamadas 'i' y 'j', luego usamossizeof(i + j)Imprimir la expresión con el operadorTamaño

Resultados de salida

(i+El tamaño de la expresión es: 8