Почему при выводе массива в консоль пишется что-то странное?
Правильный вывод УКАЗАТЕЛЯ на начало памяти где массив содержится. А массив вы так просто не выведете
массив сам по себе это указатель на первый элемент массива без оператора раземинования тоесть * он будет показывает область в памяти где находиться первый его элемент если вы напишите     
cout <<*arra << endl; то увидите 10
правильный вывод всех элементов вашего массива выглядит так 
for (int i = 0; i < 4; i++)
        cout << arra[i];