C++
Home

Sizeof

O operador unário sizeof retorna o tamanho de qualquer tipo de dado, mas sempre em bytes. Ele é muito útil, mas observe que ele não é uma função, e é usado durante a compilação, por isso não causa impacto negativo no desempenho do programa.
Alem de sizeof, c++ oferece o tipo de dado size_t, que pode armazenar o tamanho de um dado.

Com sizeof podemos descobrir, por exemplo, a quantidade de vetores de uma array por exemplo.
Para que isso seje possível, precisamos saber o tamanho do array e dividi-lo pelo tamanho de seu tipo.

Cofira o exemplo:

#include <iostream>
using std::cout;
using std::cin;
using std::endl;

size_t getsize( int * );

int main()
{
   int numero, n2 = 10;

   double n3, n4 = 10.2;

   float f;

   char string[] = "teste";
   char string2[10];

   int array[20];

   cout << "========== tamanho ==========" << endl;
   cout << "numero " << sizeof(numero) << endl;
   cout << "n2 " << sizeof(n2) << endl;
   cout << "n3 " << sizeof(n3) << endl;
   cout << "n4 " << sizeof(n4) << endl;
   cout << "f " << sizeof(f) << endl;
   cout << "string " << sizeof(string) << endl;
   cout << "strign2 " << sizeof(string2) << endl;
   cout << "array " << sizeof(array) << endl;

   cout << "==== tamanho do array =====" << endl;
   cout << ( sizeof(array) / sizeof( int ) ) << endl;
   cout << ( sizeof(string2) / sizeof( char ) ) << endl;

   cout << "=== tamanho por size_t ===" << endl;
   cout << getsize( array ) << endl; // um dos dados do array int representa 4

   cin;

   return 0;
}

size_t getsize( int *Pa )
{
   return sizeof( Pa );
}

 

Perguntas??? Email