📏функция sizeof()
определяет размер элемента в байтах
sizeof - дает нам узнать сколько места в байтах занимает элемент
sizeof(int) // узнаем размер типа данных int => 4 байта
sizeof(double) // узнаем размер типа данных double => 8 байт
int arr[4]{5,4,23,532}
sizeof(arr) // узнаем размер массива => 16 байт
// каждый элемент массива является как бы отдельной переменной такого же типа данных
// => 4*4 = 16 байт
Например мы не знаем количество элементов массива и не хотим создавать отдельную переменную для расчета. Мы можем использовать sizeof(), что бы узнать размер массива в байтах. Затем получившиеся значение мы делим на тип данных массива и узнаем количество элементов в массиве.
int arr[]{ 13,32,32,22 };
for (int i = 0; i < sizeof(arr)/sizeof(int); i++)
{
cout << arr[i] << endl;
}
// мы делим размер массива на размер его типа данных,
// что бы узнать сколько в нем элементов sizeof(arr)/sizeof(int)
// => 20 / 4 = 5 элементов массива
Допустим, мы знаем что в дальнейшем тип данных массива может быть изменен. Например мы изменили int arr[] на double arr[]. Тогда в таком случае, мы можем взять за размер типа данных первый элемент массива т.к он всегда соответствует типу данных массива sizeof(arr[0])
for(int i = 0; i < sizeof(arr)/sizeof(arr[0]); i++)
{
cout << arr[i] << endl;
}
Last updated