Для настоящего массива количество элементов равно sizeof(arr) / sizeof(arr[0]). В C++17 удобнее std::size(arr), который в данном примере вернёт 10.
Нахождение количества элементов в массиве
Для настоящего массива количество элементов равно sizeof(arr) / sizeof(arr[0]). В C++17 удобнее std::size(arr), который в данном примере вернёт 10.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Составьте программу, которая вычислит количество элементов в массиве.
# include <iostream>
int main() {
int arr[] = {1,2,3,4,5,6,7,8,9,10};
}
Ответ
Для настоящего массива количество элементов равно sizeof(arr) / sizeof(arr[0]). В C++17 удобнее std::size(arr), который в данном примере вернёт 10.
#include <iostream>
#include <iterator>
int main() {
int arr[] = {1,2,3,4,5,6,7,8,9,10};
std::cout << std::size(arr) << '\n';
}
Формула с sizeof перестаёт работать, если arr уже является указателем, например параметром функции int arr[]. Тогда размер передают отдельно, сохраняют тип массива через ссылку или используют контейнер со своим size.