Назад к вопросамЧему равен
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>сохраняет свой размер при передаче в функцию?