+ 2

Почему выводит 80? Можно подробное изложение?

#include <iostream> using namespace std; int main() { double myArr[10]; cout << sizeof(myArr) << endl; return 0; } https://code.sololearn.com/cmC1o60k3o9S/?ref=app

22nd Feb 2021, 2:12 PM
Bogdan Bogdanov
Bogdan Bogdanov - avatar
3 ответов
+ 2
Применение sizeof к массиву дает количество байтов, занимаемых массивом, а не количество его элементов и не размер в байтах каждого из них. Так как double занимает в памяти 8 байт, то и получается 8*10=80.
22nd Feb 2021, 3:07 PM
Nikolai Ivanov
Nikolai Ivanov - avatar
+ 2
Чтобы получить количество элементов масива нужно писать: double myArr[10]; cout << sizeof(myArr)/sizeof(double) << endl;
22nd Feb 2021, 4:20 PM
JaScript
JaScript - avatar
+ 2
Благодарю Вас, всё понял !!
22nd Feb 2021, 5:35 PM
Bogdan Bogdanov
Bogdan Bogdanov - avatar