Инициализация массива — это присваивание элементам массива начальных значений.
Внешние, статические внешние, статические внутренние и автоматические переменные составных типов данных, таких как массивы, могут быть проинициализированы при их объявлении. Любая автоматическая переменная или ее часть (например, элемент массива), которые не были инициализированы, остаются неопределенными. Любая внешняя или статическая переменная или часть ее (например, элемент массива), будучи не проинициализированными, устанавливаются в 0 или NULL (для указателей).
Пример 1
char alpha[10];
char beta[10] = {'a, 'b', 'c'};
char gamma[10] = "This is gamma";
char delta[5][10] ={"line 1",
                    "line 2",
                    "line 3"};
int num1[10];
int num2[10] = {2, 4, 6, 8, 10};
int num3[5][10] ={{0, 1, 2, 3, 4},
                   {2, 4, 6, 8, 10},
                   {3, 6, 8, 10, 12}};
int main ()
{
static char local[] = "local string";
char errmsg[] = "name", "too", "long";
int lengths[10] = {23, 56, 83};
...
}
Размеры строк gamma и local равны количеству символов в строке, увеличенному на 1 (для символа NULL признака конца строки).
Автоматические переменные инициализируются при каждом входе в блок. Внешние и статические переменные инициализируются один раз, перед началом выполнения программы.