Назад к вопросамЧему равен
JuniorТеорияОчень часто
Чему равен sizeof(a) внутри функции print_size?
#include <iostream>
void print_size(int a[5]) {
std::cout << sizeof(a) << '\n';
}
int main() {
int a[5] = {1, 2, 3, 4, 5};
print_size(a);
}sizeof(int*)
- Ждать
5 * sizeof(int): параметрint a[5]компилятор читает какint* aи число5игнорирует, поэтомуsizeof(a)даёт размер указателя. - Ждать
5, число в скобках:sizeofсчитает байты, а не элементы, аaздесь указатель, поэтому результат равенsizeof(int*).
- Как функции
print_sizeузнать, сколько элементов в переданном ей массиве? - Почему
std::array<int, 5>сохраняет свой размер при передаче в функцию?