Передача массива в функцию?
printMAS (&MAS);//будет ошибкой! Почему?
Будет ошибкой только с точки зрения соответствия типов, потому что тип выражения &MAS -- int (*)[5]. Значение же адреса будет одним и тем же.Вот такие инструкции же работают...
Потому что значение адреса передаётся в них через ... и интерпретируется внутри как void *, т.е. тип исходного адреса больше не имеет значения.
Передача массива по значению - неэффективна. Я вот не могу вспомнить ни одного случая, когда это реально было нужно. Обычно передают по ссылке. Иногда еще передают количество элементов, иногда закладывают лишний элемент-ограничитель, который маркирует конец массива.