C++ Розмір масиву
Отримати розмір масиву
Щоб отримати розмір масиву, можна використати оператор sizeof()
:
Приклад
int myNumbers[5] = {10, 20, 30, 40, 50};
cout << sizeof(myNumbers);
Результат:
20
Чому в результаті показано 20
замість 5
, коли масив містить 5 елементів?
Це тому, що оператор sizeof()
повертає розмір типу в байтах.
З розділу Типи даних ви дізналися, що тип int
зазвичай має 4 байти, тому з прикладу вище, 4 x 5 (4 байти x 5 елементів) = 20 байтів.
Щоб дізнатися, скільки елементів містить масив, потрібно розділити розмір масиву на розмір типу даних, який він містить:
Приклад
int myNumbers[5] = {10, 20, 30, 40, 50};
int getArrayLength = sizeof(myNumbers) / sizeof(int);
cout << getArrayLength;
Результат:
5
Перегляд масиву за допомогою sizeof()
У розділі Масиви та цикли ми написали розмір масиву в умові циклу (i < 5
). Це не ідеально, оскільки працюватиме лише для масивів указаного розміру.
Однак, використовуючи підхід sizeof()
із прикладу вище, ми тепер можемо створювати цикли, які працюють для масивів будь-якого розміру, що є більш стійким.
Замість того, щоб писати:
int myNumbers[5] = {10, 20, 30, 40, 50};
for (int i = 0; i < 5; i++) {
cout << myNumbers[i] << "\n";
}
Краще написати:
Приклад
int myNumbers[5] = {10, 20, 30, 40, 50};
for (int i = 0; i < sizeof(myNumbers) / sizeof(int); i++) {
cout << myNumbers[i] << "\n";
}
Спробуйте самі »
Зверніть увагу, що в C++ версії 11 (2011) ви також можете використовувати цикл "for-each":
Приклад
int myNumbers[5] = {10, 20, 30, 40, 50};
for (int i : myNumbers) {
cout << i << "\n";
}
Спробуйте самі »
Корисно знати різні способи проходження масиву, оскільки ви можете зіткнутися з ними в різних програмах.