Ескерім
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Оператор
Возвращает размер операнда относительно размера типа char
.
Примечание.
Дополнительные сведения об операторе см. в разделе "Многоточиеsizeof ...
" и "Шаблоны вариативных".
Синтаксис
sizeof unary-expression
sizeof ( type-name )
Замечания
Результатом sizeof
оператора является тип size_t
, целочисленный тип, определенный в файле include stddef.h><. Этот оператор позволяет избежать задания зависимых от компьютера размера данных в программах.
Операнд, который sizeof
может быть одним из следующих элементов:
Имя типа. Чтобы использовать
sizeof
имя типа, имя должно быть заключено в скобки.Выражение . При использовании с выражением
sizeof
можно указать скобки или без нее. Значение выражения не вычисляется.
sizeof
Когда оператор применяется к объекту типаchar
, он возвращает значение 1. sizeof
Если оператор применяется к массиву, он выдает общее количество байтов в этом массиве, а не размер указателя, представленного идентификатором массива. Чтобы получить размер указателя, представленного идентификатором массива, передайте его в качестве параметра в функцию, которая использует sizeof
. Например:
Пример
#include <iostream>
using namespace std;
size_t getPtrSize( char *ptr )
{
return sizeof( ptr );
}
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
Если оператор применяется к class
типу или struct
union
типу, результатом является число байтов в объекте этого типа, а также любое заполнение, добавленное для выравнивания элементов по границам слова. Результат не обязательно должен соответствовать размеру, вычисляемому путем добавления требований к хранению отдельных членов. Параметр компилятора /Zp и pragma пакета влияют на границы выравнивания элементов.
Оператор sizeof
никогда не дает 0, даже для пустого класса.
Оператор sizeof
нельзя использовать со следующими операндами:
Функции. (Однако
sizeof
можно применить к указателям на функции.)Битовые поля.
Неопределенные классы.
Тип
void
.Динамически создаваемые массивы.
Внешние массивы.
Неполные типы.
Заключенные в скобки имена неполных типов.
sizeof
Если оператор применяется к ссылке, результат такой же, как если бы sizeof
он был применен к самому объекту.
Если безразмерный массив является последним элементом структуры, оператор sizeof
возвращает размер структуры без массива.
Оператор sizeof
часто используется для вычисления количества элементов в массиве с помощью выражения формы:
sizeof array / sizeof array[0]