размер массива с++

Есть такая строчка:

int a[10];
cout << sizeof(a); // 40

Размер массива это его длина, верно? То есть можно написать:

 cout << sizeof(a)/sizeof(int); // 10, тут все понятно.

Но в 1 примере непонятно почему ответ 40 объясните пожалуйста.

#include <iostream>

using namespace std; 
int main(){
    int n,i;
    cin>>n;
    int arr[n];
    for(int i=0;i<n;i++) {
        cin>>arr[i];
    }
    for(int i=n-1;i>=0;i--) {
        cout<<arr[i] << ' ';
    }
}

Что здесь делает cin>>arr[i]? Вводит элементы массива? А это разве не индексы массива, а не сами элементы, или как.


Ответы (1 шт):

Автор решения: Mikhailo

sizeof(a) возвращает размер в байтах, а std::size(a) - в элементах.

Соответственно, 40 и 10.

→ Ссылка