Типи даних, масиви, що перераховуються типи даних, визначення типів, масиви - програмування сі
визначення типів
typedef char FIO [40] / * FIO - масив з сорока символів * /
FIO person; / * Змінна person - масив з сорока символів * /
специфікатор-типу описувач [константне - вираз];
Описувач - це ідентифікатор масиву.
Специфікатор-типу задає тип елементів оголошується масиву. Елементами масиву не можуть бути функції та елементи типу void.
- масив оголошений як формальний параметр функції;
У мові СІ визначені тільки одномірні масиви, але оскільки елементом масиву може бути масив, можна визначити і багатовимірні масиви. Вони формалізуються списком константних-виразів, наступних за ідентифікатором масиву, причому кожне константне-вираз полягає в свої квадратні дужки.
int a [2] [3]; / * Представлено у вигляді матриці
double b [10]; / * Вектор з 10 елементів мають тип double * /
В останньому прикладі оголошений масив w [3] [3]. Списки, виділені в фігурні дужки, відповідають рядкам масиву, в разі відсутності дужок ініціалізація буде виконана неправильно.
У мові СІ можна використовувати перетину масиву, як і в інших мовах високого рівня (PL1 і т.п.), однак на використання перетинів накладається ряд обмежень. Перетину формуються внаслідок опускання однієї або декількох пар квадратних дужок. Пари квадратних дужок можна відкидати тільки справа наліво і строго послідовно. Перетину масивів використовуються при організації обчислювального процесу в функціях мови СІ, що розробляються користувачем. приклади:
Якщо при зверненні до деякої функції написати s [0], то буде передаватися нульова рядок масиву s.
При зверненні до масиву b можна написати, наприклад, b [1] [2] і буде передаватися вектор з чотирьох елементів, а звернення b [1] дасть двомірний масив розміром 3 на 4. Не можна написати b [2] [4], маючи на увазі , що передаватися буде вектор, тому що це не відповідає обмеженню накладеному на використання перетинів масиву.
Слід враховувати, що в символьному літералі знаходиться на один елемент більше, так як останній з елементів є керуючою послідовністю '# 65533;'.
Приклади ініціалізації масивів:
Ініціалізується двомірний масив b цілих величин, елементів масиву привласнюються значення зі списку.
Ця ж ініціалізація може бути виконана таким чином:
Якщо при ініціалізації вказано менше значень для рядків, то що залишилися елементи инициализируются 0, тобто при описі
елементи першого рядка отримають значення 1 і 2, а другий 3 і 0.
При ініціалізації масиву можна опустити одну або кілька размерностей