В явном виде указывать размер массива можно только в небольших программах,потому что если массив задан явно на 20 элементов,анудно 21,то уже будут проблемы.
Вторая причина почему не задают явно-это экономия памяти,если явно создать массив из 3000 элементов и использовать только первые 100,потери памяти будут большие.