ініціалізація масивів

Спісок_значеній є список констант, розділених комами. Типи констант повинні бути сумісними з типом масиву. Перша константа присвоюється першому елементу масиву, друга - другого і так далі. Після закриття фігурної дужки крапка з комою обов'язкова.

У С99 локальні масиви можна ініціалізувати НЕ константами, а змінними, однак в С89 все масиви инициализируются тільки константами.

У наступному прикладі масив цілих з 10 елементів инициализируется числами від 1 до 10:

Тут елементу i [0] присвоюється 1, a i [9] - 10.

Символьні масиви, що містять рядки, можна форматувати строковими константами:

У наступному прикладі масив str инициализируется фразою «Мова С»:

Багатовимірні масиви не започатковано так само, як і одномірні. У наступному прикладі масив sqrs инициализируется числами від 1 до 10 і їх квадратами:

Ініціалізувавши багатовимірний масив, для поліпшення наочності елементи ініціалізації кожного вимірювання можна укладати в фігурні дужки. Цей спосіб називається групуванням подагрегатов (subaggregate grouping). З використанням цього прийому попередній приклад може бути записаний так:

При такому записі, якщо всередині групи недостатньо констант ініціалізації, то що залишилися елементи групи автоматично заповнюються нулями.

Ініціалізація безрозмірних масивів

Припустимо, що необхідно створити таблицю повідомлень про помилки, використовуючи ініціалізацію масивів:

Для завдання розміру масиву довелося б вручну підраховувати кількість символів в кожному повідомленні. Однак в мові С є конструкція, завдяки якій компілятор автоматично визначає необхідну довжину рядка. Якщо в операторі ініціалізації масиву не вказано розмір масиву, компілятор створює масив такого розміру, що в ньому вміщаються всі ініціалізували елементи. Таким чином створюється безрозмірний масив. Використовуючи цей метод, попередній приклад можна записати так:

виведе на екран наступне:

Крім зменшення трудомісткості, ініціалізація безрозмірних масивів корисна тим, що дозволяє змінювати довжину будь-якого повідомлення, не піклуючись про дотримання меж масивів.