Различия

Показаны различия между двумя версиями страницы.


sizeof [2025/07/06 12:39] (текущий) – создано - внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== Операция sizeof ======
 +Эта операция выполняется на стадии компиляции. Результатом этой операции является число байтов, необходимое для размещения объекта в памяти. Существует два варианта синтаксиса этой операции. В первом из них единственный операнд операции определяет некоторый тип языка, и он должен быть заключен в скобки:
 +<file>
 +sizeof ( float )
 +sizeof ( int )
 +</file>
 +Во втором операнд задает некоторое выражение и здесь использование скобок необязательно:
 +<file>
 +sizeof a; 
 +sizeof *ip; 
 +sizeof array[ i ];
 +</file>
 +Заметим, что при получении размеров массивов, несмотря на то, что имя массива является указателем, результатом операции
 +sizeof array,
 +где array - имя некоторого массива, является длина в байтах этого массива. Это свойство можно использовать для вычисления числа элементов в массиве:
 +<file>
 +const n = 20; 
 +int array [n]; 
 +  . . . 
 +int num=sizeof array / sizeof(int) // num = = 20.
 +</file>
 +Результатом операции sizeof над ссылкой является длина типа, с которым сопоставлена ссылка, т.е. sizeof( double & ) и sizeof( double ) эквивалентны.
  
 +  * **Размеры структуры [[struct]]**
 +Наверняка, вы предполагаете, что размер структуры равен сумме размеров ее членов. Это не так. Вследствие выравнивания объектов разной длины в структуре могут появляться безымянные "дыры". Так, например, если переменная типа char занимает один байт, а int - четыре байта, то для структуры:
 +<file>
 +#include <iostream>
 +using namespace std;
 +struct Test
 +{
 + char c;
 + int i;
 +};
 +void main ()
 +{
 + Test d={'#',78};
 + cout<<sizeof(Test)<<" "<<sizeof(d)<<"\n\n";
 +}
 +</file>
 +может потребоваться восемь байт, а не пять. Правильное значение возвращает операция sizeof.

📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.

📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!