operador sizeof (c)

El operador de sizeof proporciona la cantidad de almacenamiento, en bytes, de almacenar un objeto de tipo del operando.Este operador permite evitar especificar tamaños de datos equipo-dependientes en programas.

sizeof unary-expression
sizeof ( type-name )

Comentarios

El operando es un identificador que es una singular-expresión, o una expresión de conversión de tipo (es decir, especificador de tipo entre paréntesis).La singular-expresión no puede representar un objeto de campo de bits, un tipo incompleto, o un designador de función.el resultado es una constante entera sin signo.el encabezado estándar STDDEF.H define este tipo como size_t.

Cuando se aplica el operador de sizeof a un identificador de matriz, el resultado es el tamaño de la matriz completo en lugar del tamaño de puntero representado por el identificador de matriz.

Cuando se aplica el operador de sizeof a un nombre de tipo de estructura o unión, o un identificador del tipo de estructura o unión, el resultado es el número de bytes de la estructura o unión, incluido el relleno interno y final.Este tamaño puede incluir el relleno interno y final utilizado para alinear los miembros de la estructura o unión en límites de memoria.Así, el resultado puede no corresponder al tamaño calculado sumando los requisitos de almacenamiento de los miembros individuales.

Si una matriz sin tamaño es el último elemento de una estructura, el operador de sizeof devuelve el tamaño de la estructura sin la matriz.

buffer = calloc(100, sizeof (int) );

Este ejemplo utiliza el operador de sizeof para pasar el tamaño de int, que varía entre los equipos, como argumento de una función en tiempo de ejecución denominada calloc.el valor devuelto por la función se almacena en 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] ); 

En este ejemplo, strings es una matriz de punteros a char.El número de punteros es el número de elementos de la matriz, pero no se especifica.Es fácil determinar el número de punteros utilizando el operador de sizeof para calcular el número de elementos de la matriz.El valor entero string_no de const inicializa a este número.Como es un valor de const , string_no no puede modificarse.

Vea también

Referencia

Operadores de C++