
- •Програмування і алгоритмічні мови Конспект лекцій
- •Луцьк 2004
- •Лекція 1 Основи мови с. Оператори введення та виводу.
- •Імена змінних та типи і розміри даних. Арифметичні та логічні оператори. Оператори присвоєння.
- •Лекція 3 Масиви. Масиви літер.
- •Умовні оператори. Інкриментні та декрементні оператори.
- •Цикл For
- •Лекція 6 Цикли While, Do-while.
- •Препроцесор. Рекурсія.
- •Структури. Масив структур.
- •Основні відомості про функції.
- •Змінні і правила дії областей у функціях
- •Головні файли.
- •Масиви в якості аргументів функції.
- •Структури в якості аргументів функції
- •Вказівники і адреси
- •Масиви вказівників
- •Вказівники на структуру
- •Лекція 17 Використання вказівників у якості аргументів функцій
- •Лекція 18 Доступ до файлів
- •Методичне видання
- •“Автоматизоване управління технологічними процесами”
- •Тир.50 прим. Зам.1516
- •43018, М.Луцьк, вул. Львівська, 75
Лекція 3 Масиви. Масиви літер.
Масиви - це група елементів однакового типу (double, float, int і т.п.). З оголошення масиву компілятор повинний одержати інформацію про тип елементів масиву і їхню кількість. Оголошення масиву має два формати:
специфікатор-типу описувач [констант - вираз];
специфікатор-типу описувач [ ];
Описувач - це ідентифікатор масиву .
Специфікатор-типу задає тип елементів масиву. Елементами масиву не можуть бути функції й елементи типу void.
Констант-вираз в квадратних дужках задає кількість елементів масиву. Констант-вираз при оголошенні масиву може бути опущений в наступних випадках:
- при оголошенні масив, які ініціалізуються,
- масив оголошений як формальний параметр функції,
- масив оголошений як посилання на масив, явно визначений в іншому файлі.
У мові Сі визначені тільки одномірні масиви, але оскільки елементом масиву може бути масив, можна визначити і багатомірні масиви. Вони формалізуються списком констант-виражень наступних за ідентифікатором масиву.
Кожний констант-вираз в квадратних дужках визначає число елементів по даному вимірі масиву, так що оголошення двомірного масиву містить два констант-вирази, тривимірного - три і т.д. Відзначимо, що в мові Сі перший елемент масиву має індекс рівний 0.
Приклади:
int a[2][3]; /* представлено у виді матриці
a[0][0] a[0][1] a[0][2]
a[1][0] a[1][1] a[1][2] */
double b[10]; /* вектор з 10 елементів маючих тип double */
int w[3][3] = { { 2, 3, 4 },
{ 3, 4, 8 },
{ 1, 0, 9 } };
В останньому прикладі оголошений масив w[3][3]. Списки, виділені у фігурні дужки, відповідають рядкам масиву, у випадку відсутності дужок ініціалізація буде виконана неправильно.
У мові Сі можна використовувати перетину масиву, як і в інших мовах високого рівня (PL1 і т.п.), однак на використання перетину накладається ряд обмежень. Перетини формуються внаслідок опускання однієї чи декількох пар квадратних дужок. Пари квадратних дужок можна відкидати тільки праворуч ліворуч і строго послідовно. Перетину масивів використовуються при організації обчислювального процесу у функціях мови Сі, які розроблені користувачем.
Приклади:
int s[2][3];
Якщо при звертанні до деякої функції написати s[0], то буде передаватися нульовий рядок масиву s.
int b[2][3][4];
При звертанні до масиву b можна написати, наприклад, b[1][2] і буде передаватися вектор з чотирьох елементів, а звертання b[1] дасть двомірний масив розміром 3 на 4. Не можна написати b[2][4], припускаючи, що передаватися буде вектор, тому що це не відповідає обмеженню накладеному на використання перетинів масиву.
Приклад оголошення символьного масиву.
char str[] = "оголошення символьного масиву";
Варто враховувати, що в символьному масиві знаходиться на один елемент більше, тому що останній з елементів є керуючою послідовністю '\0'.
Очевидно самим загальним типом масиву в C є масив символів.
Лекція 4