оператор sizeof
Создает размер своего операнда относительно размера типа char.
sizeof unary-expression
sizeof ( type-name )
Заметки
Результат sizeof тип - оператор size_tцелочисленный тип, определенный в файле STDDEF.H. include.Этот оператор позволяет избежать указать размеры по данным компьютер-зависимой ячейки в программах.
Операнда sizeof может быть одно из следующих значений:
Имя типа.Использование sizeof имя типа, имя должно быть заключено в скобки.
Выражение.При использовании вместе с выражением sizeof может быть указан с или без скобок.Выражение не вычисляется.
После sizeof оператор применяется к объекту типа charон приводит 1.После sizeof оператор применяется к массиву, она возвращает общее количество байтов, в котором массив, а не размер указателя, представленное идентификатором массива.Чтобы получить размер указателя, представленное идентификатором массива, передайте его в качестве параметра функции, которая использует sizeof.Примеры.
Пример
// expre_sizeof_Operator.cpp
// compile with: /EHsc
#include <iostream>
size_t getPtrSize( char *ptr )
{
return sizeof( ptr );
}
using namespace std;
int main()
{
char szHello[] = "Hello, world!";
cout << "The size of a char is: "
<< sizeof( char )
<< "\nThe length of " << szHello << " is: "
<< sizeof szHello
<< "\nThe size of the pointer is "
<< getPtrSize( szHello ) << endl;
}
Пример результатов выполнения
The size of a char is: 1
The length of Hello, world! is: 14
The size of the pointer is 4
После sizeof оператор применяется к a класс" structили union введите результат число байтов в объекте данного типа, а также любая заполнение добавленная для выравнивания элементов в диапазоне от машинного слова.Результат не обязательно соответствует размеру вычисляемый путем добавления требования к памяти отдельных элементов./Zp и параметр компилятора пакет границы выравнивания для членов, влияют на директивы pragma.
sizeof оператор никогда не создает 0, даже для пустого класса.
sizeof оператор не может применяться со следующими операндами.
Функции.(Однако sizeof может применяться к указателям на функции.)
Битовые поля.
Неопределенные классы.
Тип void.
Динамически размещенные массивы.
Внешние массивы.
Неполные типы.
Заключенное в скобки имена неполных типов.
После sizeof оператор применяется к ссылке, результат такой же, если sizeof применение к самому объекту.
Если неклееный массив структур, то последний элемент sizeof оператор возвращает размер структуры без массива.
sizeof оператор часто используется для расчета количество элементов в массиве с помощью выражения формы:
sizeof array / sizeof array[0]