Ініціалізація масивів.
При визначенні масивів можлива їх ініціалізація, тобто присвоювання початкових значень їх елементам. По суті (точніше по результату), ініціалізація - це об'єднання визначення об'єкту з одночасним присвоюванням йому конкретного значення. Використання ініціалізації дозволяє змінити формат визначення масиву. Наприклад, можна явно не вказувати кількість елементів одновимірного масиву, а тільки перерахувати їх початкові значення в списку ініціалізації:
double d[ ]={1.0, 2.0, 3.0, 4.0, 5.0};
В даному прикладі довжину масиву компілятор обчислює по кількості початкових значень, перерахованих у фігурних дужках. Після такого визначення елемент d[0] рівний 1.0, d[l] рівний 2.0 і т.д. до d[4], який рівний 5.0. Якщо у визначенні масиву явно вказаний його розмір, то кількість початкових значень не може бути більше кількості елементів в масиві. Якщо кількість початкових значень менше ніж оголошена довжина масиву, то початкові значення отримають тільки перші елементи масиву (з меншими значеннями індексу):
int M[8]={8,4,2};
В даному прикладі визначені значення тільки змінних М[0], М[1] і М[2], рівні відповідно 8, 4 і 2. Елементи М[3]..., М[7] не ініціалізувалися. Правила ініціалізації багатовимірних масивів відповідають визначенню багатовимірного масиву як одновимірного, елементами якого є масиви, розмірність яких на одиницю менше ніж у початкового масиву. Одновимірний масив ініціалізувався вкладеним у фігурні дужки списком початкових значень. В свою чергу, початкове значення, якщо воно відноситься до масиву, також є заключений у фігурні дужки список початкових значень. Наприклад, присвоїти початкові значення дійсним елементам двовимірного масиву А, що складається з трьох "рядків" і двох "стовпців", можна таким чином: double А[3][2]={{10,20}, {30,40}
{50,60}};
Цей запис еквівалентний послідовності операторів привласнення: А[0][0]=10; А[0][1]=20; А[1][0]=30; А[1][1]=40; А[2][0]=50; А[2][1]=60;. Той же результат можна отримати з одним списком ініціалізації:
double A[3][2]={10,20,30,40,50,60};
За допомогою ініціалізації можна присвоювати значення не всім елементам багатовимірного масиву. Наприклад, щоб ініціалізувати тільки елементи першого стовпця матриці, її можна описати так:
double Z[4][6]={{1},{2},{3},{4}};
Наступний опис формує "трикутну матрицю" в цілочисельному масиві з 5 рядків і 4 стовпців: int x[5][4]={{1},{2,3}, {4,5,6}, {7,8,9,10} };
В даному прикладі останній п'ятий рядок х[4] залишається незаповнений. Перші три рядки заповнено не до кінця.