
- •1 Основні елементи мови с
- •1.1 Алфавіт мови програмування
- •1.2 Лексеми
- •1.3 Ключові слова
- •1.4 Ідентифікатори
- •1.5 Класифікація типів даних
- •1.6 Літерали
- •1.7 Оператори
- •1.8 Коментарі
- •1.9 Директиви препроцесора
- •1.10 Організація програми
- •2 Операції та вирази
- •2.1 Загальні відомості
- •2.2 Арифметичні операції
- •2.3 Операції приведення типів
- •2.4 Операції присвоєння
- •2.5 Операції інкремента і декремента
- •2.6 Операції порівняння
- •2.7 Операції зсуву
- •2.8 Порозрядні операції
- •2.9 Логічні операції
- •2.10 Операція sizeof
- •2.11 Операція послідовного обчислення
- •2.12 Операція умови (?:)
- •2.13 Адресні операції
- •3 Прості типи даних
- •3.1 Оголошення змінних
- •3.2 Час існування та область видимості змінних
- •3.3 Цілі типи даних
- •3.4 Дійсні типи даних
- •4 Оператори керування
- •4.1 Оператор розгалуження if
- •4.2 Оператор розгалуження if-else
- •4.3 Оператор множинного розгалуження switch
- •4.4 Оператор циклу for
- •4.5 Оператор циклу while
- •4.6 Оператор циклу do while
- •4.7 Оператор break
- •4.8 Оператор continue
- •5 Функції
- •5.1 Основні поняття
- •5.2 Види виклику функцій
- •5.3 Область видимості
- •5.4 Порожній тип void
- •5.5 Передача аргументів у функцію
- •5.6 Рекурсивні функції
- •5.7 Прототипи функцій
- •6 Покажчики
- •6.1 Визначення та ініціалізація покажчиків
- •6.2 Визначення покажчиків
- •6.3 Масиви
- •6.4 Операції порівняння
- •6.5 Копіювання рядка
- •6.6 Покажчики на функцію
- •6.7 Покажчики на void
- •6.8 Арифметика покажчиків
- •7 Масиви
- •7.1 Загальні поняття
- •7.2 Одновимірні масиви
- •7.3 Багатовимірні масиви
- •8 Рядки в с
- •8.1 Рядки
- •8.2.Створення рядків
- •8.3 Прототипи
- •8.3 Функції перетворення буферів
- •8.4 Функції перевірки літер
- •8.5 Операції з рядками
- •9 Структури, об’єднання, перерахування
- •9.1 Структури
- •9.2 Бітові поля
- •9.3 Ключове слово typedef
- •9.4 Об’єднання
- •9.5 Перераховуваний тип
- •10 Введення та виведення даних
- •10.1 Функція виведення printf
- •10.2Функція введення scanf
- •10.3 Введення та виведення у файл
- •11 Динамічне виділення пам'яті
1.7 Оператори
Оператор (statement) у С визначає дію, яка має бути виконана. Оператори можна класифікувати на такі групи:
оператори мітки;
оператор вираз;
порожній оператор;
складений оператор;
ітераційні оператори;
оператори переходу;
оператори вибору.
Оператор мітки використовується разом з оператором переходу goto, для безумовного переходу з точки програми позначеної оператором goto в точку програми позначену оператором мітки.
Оператор вираз представляє собою будь-який вираз, в кінці цього оператора обов’язково має бути символ крапка з комою «;».
Порожній оператор складається з єдиного символу «;». Цей оператор використовується в інших операторах коли по синтаксису потрібно використати оператор але жодних дій виконувати не потрібно.
Складений оператор являє собою нуль або більше операторів, об’єднаних за допомогою фігурних дужок. Відмінною рисою складеного оператора мови C від інших (наприклад, Pasсal) полягає в тому, що він визначає нову область дії, тобто змінні, визначені усередині складеного оператора, є локальними.
Ітераційні оператори призначені для виконання частини коду програми декілька разів при можливій зміні значень змінних у цій частині коду.
Оператори вибору призначені для умовного переходу до виконання частини коду програми.
Оператори переходу призначені для безумовного переходу. Оператор return повертає значення з функції, оператор break припиняє виконання ітераційних операторів і оператора switch, оператор continue переходить на наступну ітерацію у ітераційних операторах.
Класифікація операторів мови С наведена на рис. 1.2.
Згідно синтаксису операторів представлених на рис. 1.2 на місці слова «оператор» може знаходитися будь-який оператор. Наприклад, оператор if може містити оператор while, який, в свою чергу, може містити оператор вираз. Винятком з правила є оператори continue і break, які можуть використовуватися тільки в ітераційних операторах. Це правило не розповсюджується на оператор switch, синтаксис якого є особливим і визначено нижче.
Рисунок 1.2 – Класифікація операторів
1.8 Коментарі
Коментар – це набір символів, що ігноруються компілятором, і використовується для написання пояснень до коду програми. Початок та кінець коментарю позначається відповідно лексемами (/*) та (*/). Коментарі можуть бути як однострічковими так і багатострічковими. Коментарі розглядаються компілятором як розділові символи.
Коментарі можуть використовуватися при відлагодженні програми коли потрібно зробити недоступною для компілятора проблемну (не робочу) частину коду програми.
Наявність коментарів у тексті програми робить її зрозумілішою і дозволяє легко пригадати особливості програми після звертання до неї через тривалий проміжок часу.
Приклад 1.7. Синтаксис коментаря.
int a = 2, b = 7; /* ініціалізація змінних */
/* однострічковий коментар */
/* при використанні багатострічкових
коментарів потрібно бути обережним,
щоб усередині послідовності, що ігно-
рується компілятором, не потрапили
оператори програми, що також будуть ігноруватися */