3.7.13. sizeof - un operador en si mismo

El operador sizeof es independiente porque satisface una necesidad inusual. sizeof proporciona información acerca de la cantidad de memoria ocupada por los elementos de datos. Como se ha indicado antes en este capítulo, sizeof indica el número de bytes utilizado por cualquier variable particular. También puede dar el tamaño de un tipo de datos (sin necesidad de un nombre de variable):

//: C03:sizeof.cpp
#include <iostream>
using namespace std;
int main() {
  cout << "sizeof(double) = " << sizeof(double);
  cout << ", sizeof(char) = " << sizeof(char);
} ///:~

Listado 3.42. C03/sizeof.cpp


Por definición, el sizeof de cualquier tipo de char (signed, unsigned o simple) es siempre uno, sin tener en cuenta que el almacenamiento subyacente para un char es realmente un byte. Para todos los demás tipos, el resultado es el tamaño en bytes.

Tenga en cuenta que sizeof es un operador, no una función. Si lo aplica a un tipo, se debe utilizar con la forma entre paréntesis mostrada anteriormente, pero si se aplica a una variable se puede utilizar sin paréntesis:

//: C03:sizeofOperator.cpp
int main() {
  int x;
  int i = sizeof x;
} ///:~

Listado 3.43. C03/sizeofOperator.cpp


sizeof también puede informar de los tamaños de tipos definidos por el usuario. Se utilizará más adelante en el libro.