mk{MA); это вызов функции с передачей в неё переменной. В частном случае массива.
Знак & в такой записи означает, что переменная передаётся в функцию по ссылке. То-есть при изменении в массиве ма[] произойдёт изменение в массиве МА[] который объявлен локально в функции OnTick()
Плюсов не много, но самый главный плюс возможность вернуть из функции несколько значений. И второе, это иметь несколько одноимённых переменных или массивов в разных функциях и они между собой не будут конфликтовать. А минусов вообще нет, или я о них не знаю.
Вот такой пример
C++:
void OnStart()
{
int a, b;
double c, d;
a = fu(b, c, d);
Print("a = ", a, " b = "b, " c = ", c, " d = ", d)
}
int fu(int &e, double &f, double &g)
{
e = 77;
f = 2.75;
g = 33.9;
return(7);
}
Проверь что будет распечатано.