MyArray
- это int*
, а sizeof(int*)
в вашей системе - 4.
MyArray
- это , а не массив. Это указатель, который указывает на блок памяти, в котором вы разместили массив.
int MyArray[10];
cout << sizeof(MyArray) << endl;
Это должно вывести 40, то есть, насколько велико 10 int
с в вашей системе. В этом случае MyArray
- это массив. Таким образом, размер типа включает в себя размер всех элементов массива.
MyArray
во втором случае превратится в указатель, но они по-прежнему являются двумя разными типами.