Я пытаюсь получить размер массива в C ++ для последующего использования. Почему это дает 16?
#include <iostream>
using namespace std;
int main()
{
int a[4];
cout << sizeof(a) << endl;
return 0;
}
Разве это не должно дать 20? Потому что в этом массиве в основном 20 байтов от [0] до [4]? Размер элемента можно проверить, получив -
sizeof(a[0])
Теперь это 4. 16/4 = 4, что означает, что есть 4 блока по 4 байта, тогда как на самом деле должно быть 5. Почему это ?
PS Моя основная путаница возникла из-за получения sizeof (a [4]) - равного 4. Поскольку он выдавал вывод 4 - я думал, что это часть массива.