logo
volkov / C++ / Бьерн Страуструп-Справочное руководство по С++

R.5.3.2 Операция sizeof

Операция sizeof вычисляет размер своего операнда в байтах. Операнд

должен быть или выражением, которое не вычисляется, или именем типа

в скобках. Операцию sizeof нельзя применять к функции, битовому полю,

неопределенному классу, типу void или к массиву с неуказанными

границами индексов. Байт никак не определяется языком, кроме как

результата операции sizeof, именно sizeof(char) есть 1.

Если операция применяется к ссылке, результатом будет размер

объекта, на который настроена ссылка. Если она применяется к классу,

результатом будет размер объекта этого класса в байтах с учетом

всех дополнительных байтов, которые потребуется для размещения

такого объекта в массиве. Размер любого класса или объекта класса

больше нуля. В случае массива операция выдает полное число байтов

в массиве. Отсюда следует, что размер массива из n элементов равен

размеру элемента, умноженному на n.

Операция sizeof может применяться к указателю на функцию, но не

к самой функции.

Результатом операции будет константа типа size_t. Этот тип

определен в стандартном заголовочном файле <stddef.h> и является

зависящим от реализации беззнаковым целочисленным типом.