Здравствуйте, чем является имя массива в C?
Ничем. "Имя массива" - это просто удобное название для тех, кто не одолел темы указателей. Те, кто эту тему одолел, таким вопросом уже не задаются, потому что статические массивы типа int[5] для них просто перестают существовать. "Имя массива" указывает на его первый элемент, но сделать с ним ничего нельзя. Точка. Не нравится - используйте динамические массивы.
При создании многомерного массива (двух мерного в частности)
"Двумерный (трех- , четырех-, n- мерный) массив" - это абстракция. В памяти данные идут последовательно, следовательно вся "мерность" массива - это автоматическое перемещение текущего указателя к некоей точке. Что опять нас возвращает к вопросу о статических и динамических массивах.
Осваивайте указатели и все эти костыли отвалятся сами по себе.