оператор 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]

См. также

Ссылки

Выражения с унарными операторами

Ключевые слова C++