Операция sizeof

Эта операция выполняется на стадии компиляции. Результатом этой операции является число байтов, необходимое для размещения объекта в памяти. Существует два варианта синтаксиса этой операции. В первом из них единственный операнд операции определяет некоторый тип языка, и он должен быть заключен в скобки:

sizeof ( float )
sizeof ( int )

Во втором операнд задает некоторое выражение и здесь использование скобок необязательно:

sizeof a; 
sizeof *ip; 
sizeof array[ i ];

Заметим, что при получении размеров массивов, несмотря на то, что имя массива является указателем, результатом операции sizeof array, где array - имя некоторого массива, является длина в байтах этого массива. Это свойство можно использовать для вычисления числа элементов в массиве:

const n = 20; 
int array [n]; 
  . . . 
int num=sizeof array / sizeof(int) // num = = 20.

Результатом операции sizeof над ссылкой является длина типа, с которым сопоставлена ссылка, т.е. sizeof( double & ) и sizeof( double ) эквивалентны.

Наверняка, вы предполагаете, что размер структуры равен сумме размеров ее членов. Это не так. Вследствие выравнивания объектов разной длины в структуре могут появляться безымянные "дыры". Так, например, если переменная типа char занимает один байт, а int - четыре байта, то для структуры:

#include <iostream>
using namespace std;
struct Test
{
	char c;
	int i;
};
void main ()
{
	Test d={'#',78};
	cout<<sizeof(Test)<<" "<<sizeof(d)<<"\n\n";
}

может потребоваться восемь байт, а не пять. Правильное значение возвращает операция sizeof.

PQ VPS сервера в 28+ странах.
  • Friendhosting - Разумные цены на хостинг

    VDS/VPS сервер от 3.49€ в месяц. Много ресурсов. Высокая надежность. Гибкое управление. Удобная оплата. Настройка под вас!

    friendhosting.net
  • Антидетект браузер Dolphin{anty} бесплатно до 10 профилей

    Dolphin разработан для работы с такими сложными ресурсов, как Google, Facebook и Coinlist.

  • Английский для IT‑специалистов по Skype

    Персональные занятия по разумным ценам. 80% разговорной практики. Персональный график!

    skyeng.ru