El operador sizeof es un caso aparte 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, independientemente de que el almacenamiento subyacente para un char sea realmente un byte o no. 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.