Операция sizeof определяет размер в байтах своего операнда - переменной, объекта, типа. Возвращаемый результат имеет тип size_t (unsigned).
Операция имеет две формы:
sizeof выражение
sizeof (имя_типа)
Например:
sizeof *Label1;
sizeof (TLabel);
sizeof a;
sizeof (int);
Во всех случаях операция возвращает целое, равное числу байтов в объекте (*Label1), типе (TLabel, int), переменной (а).
Надо учесть, что размер переменной, объекта, типа может изменяться в зависимости от машины и от используемой версии программного обеспечения. Поэтому во всех случаях, когда вам требуется знать размер объекта или типа, нельзя полагаться на документацию, а надо использовать операцию sizeof.
Если операндом является выражение, то sizeof возвращает суммарный объем памяти, занимаемый всеми переменными и константами, входящими в него. Если операндом является массив, то возвращается объем памяти, занимаемый всеми элементами массива (т.е. имя массива не воспринимается в данном случае как указатель). Число элементов в массиве можно определить выражением sizeof array/sizeof аrrау[0].
Если операндом является параметр, объявленный как тип массива или функции, то возвращается размер только указателя. К функциям операция sizeof не применима.
Если операция sizeof применяется к структуре или объединению, она возвращает общий объем памяти, включая все наполнение этого объекта.