- •2. Основні елементи мови с
- •3.1 Алфавіт мови програмування
- •3.2Лексеми
- •3.3Ключові слова
- •3.4Ідентифікатори
- •3.5 Класифікація типів даних
- •3.6 Літерали
- •3.7 Оператори
- •3.8 Коментарі
- •3.9 Директиви препроцесора
- •3.10 Організація програми
- •3. Операції та вирази
- •4.1 Загальні відомості
- •4.2 Арифметичні операції
- •4.3 Операції приведення типів
- •(Тип) ідентифікатор,
- •4.4 Операції присвоєння
- •4.5 Операції інкремента і декремента
- •4.6 Операції порівняння
- •4.7 Операції зсуву
- •4.8 Порозрядні операції
- •4.9 Логічні операції
- •4.10 Операція sizeof
- •Sizeof ( Вираз ),
- •4.11 Операція послідовного обчислення
- •4.12 Операція умови (?:)
- •Операнд-1 ? Операнд-2 : Операнд-3
- •4.13 Адресні операції
- •Тип * ім'я_покажчика;
- •4. Прості типи даних
- •5.1 Оголошення змінних
- •[ Модифікатори ] тип ім’я_змінної;
- •5.2 Час існування та область видимості змінних
- •5.3 Цілі типи даних
- •5.4 Дійсні типи даних
- •5. Оператори керування
- •5.1 Оператор розгалуження if
- •If ( Вираз ) true-оператор;
- •5.2 Оператор розгалуження if-else
- •If ( Вираз ) true-оператор; else false-оператор;
- •5.3 Оператор множинного розгалуження switch
- •5.4 Оператор циклу for
- •For ( Вираз 1 ; Вираз 2 ; Вираз 3 ) тіло циклу
- •5.5 Оператор циклу while
- •While ( Вираз ) тіло циклу
- •5.6 Оператор циклу do while
- •Тіло циклу while ( Вираз ) ;
- •5.7 Оператор break
- •5.8 Оператор continue
- •6 Введення та виведення даних
- •7.1 Функція виведення printf
- •Int printf( стрічка форматування, змінна1, змінна2, ... );
- •7.2Функція введення scanf
- •Int scanf (стрічка форматування, адреса змінної1, адреса змінної2, ... );
- •9.1 Введення та виведення у файл
- •7 Масиви
- •7.1 Загальні поняття
- •7.2 Одновимірні масиви
- •Тип даних ім’я змінної [n];
- •7.3 Багатовимірні масиви
- •6. Функції
- •6.1 Основні поняття
- •{Тіло функції}
- •6.2 Область видимості
- •6.3 Порожній тип void
- •6.4 Передача аргументів у функцію
- •6.5 Рекурсивні функції
- •6.6 Прототипи функцій
- •8. Рядки в с
- •4.1 Прототипи
- •4.2 Функції перетворення буферів
- •4.3 Функції перевірки літер
- •4.4 Рядок символів
- •4.5 Операції з рядками:
- •4.6 Символьні константи
- •9. Покажчики
- •5.1 Визначення та ініціалізація покажчиків
- •5.2 Визначення покажчиків:
- •5.3 Масиви
- •5.6 Копіювання рядка
- •5.7 Посилання та оператор &
- •5.9 Посилання в якості результатів функції
- •5.10 Покажчики на функцію
- •Тип_функціі (* імя_покажчика) (специфікація_параметрів);
- •5.11 Покажчики на void
- •5.12 Арифметика покажчиків
- •10. Структури, об’єднання, перерахування
- •7.1 Структури
- •7.2 Ключове слово typedef
- •7.3 Об’єднання
- •7.4Перераховуваний тип (Enum)
- •Enum dataType
- •Enum day
- •11 Динамічне виділення пам'яті
2. Основні елементи мови с
3.1 Алфавіт мови програмування
Будь-яка мова, у тому числі й C, має свій алфавіт– набір символів, які дозволені до використання і сприймаються компілятором. Множина символів, що використовуються у мові С представлена у табл. 3.1.
Таблиця 3.1 – Алфавіт мови С
№ |
Символи |
1 |
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z |
2 |
_ (символ підкреслювання) |
3 |
0 1 2 3 4 5 6 7 8 9 |
4 |
, . ; : ? ‘ ! | / \ ~ * + -) ( } { < > [ ] # % & ^ = “ |
5 |
Пробіл, табуляція, повернення каретки, нова сторінка, новий рядок |
Великі та малі літери вважаються різними символами, тому що мають різні коди в таблиці кодів ASCII. Це важлива відмінність C від багатьох інших мов програмування, наприклад від Паскаля.
Символи пунктів 1-3 в табл. 3.1 використовуються для утворення літералів, ідентифікаторів та ключових слів.
Знаки пунктуації і спеціальні символи (пункт 4, табл. 3.1) використовуються, з одного боку, для організації процесу обчислень, а з іншого боку - для передачі компілятору визначеного набору інструкцій.
Розділові символи (пункт 5, табл. 3.1) відокремлюють один від другого об'єкти, обумовлені користувачем, такі наприклад, як: літерали та ідентифікатори. Послідовність розділових символів розглядається компілятором як один символ (наприклад, послідовність пробілів як один пробіл).
Символьні та стрічкові літерали а також коментарі можуть містити символи не з алфавіту мови С, наприклад, букви російського алфавіту.
3.2Лексеми
Лексемою називають нероздільну послідовність символів з алфавіту мови С (у найпростішому випадку один символ), які розпізнаються компілятором, тобто компілятор не аналізує компоненти, які входять в цю послідовність.
Лексемами є літерали, ідентифікатори, ключові слова, знаки операцій, а також символи пунктуації, такі як: прямокутні ([]), фігурні ({}) і кутові скобки (<>), двокрапка і кома.
Лексеми між собою можуть бути відокремлені розділовими символами (пробіл, символ табуляції тощо) чи такими іншими лексемами, як знаки операцій. Щоб запобігти розбивці елементівлексеми на декілька частин компілятором забороняється використання розділових символів у ідентифікаторах, багатосимвольних операціях чи ключових словах.
3.3Ключові слова
Ключові слова– це зарезервовані лексеми, що наділені визначеним змістом. Їх можна використовувати тільки у відповідності зі значенням відомим компілятору мови С. Список ключових слів приведено у таблиці 3.2.
Таблиця 3.2 – Список ключових слів
auto break case char continue |
default do double else enum |
extern float for if int |
long register return short signed |
sizeof static struct switch typedef |
union unsigned void volatile while |
3.4Ідентифікатори
Ідентифікатор- це лексема, що складається з літер, цифр і знаків підкреслення. Ідентифікатори використовуються в якості імен змінних, функцій, структур тощо.
Першим символом ідентифікатора має бути буква чи знак підкреслення. Для утворення ідентифікаторів можуть бути використані малі чи великі букви латинського алфавіту. Мовою C допускається довільна довжина ідентифікатора, однак значимі тільки перші 31 символ. Два ідентифікатори для утворення яких використовуються співпадаючі малі та великі букви, вважаються різними.
Ідентифікатори не можуть складатися з декількох слів (не можна використовувати пробіл усередині ідентифікатора) чи містити в собі символи кирилиці (український або російський алфавіт).
Приклад 1. Ідентифікатори.
abc, ABC, A128B, a128b.
Створюючи ідентифікатор потрібно пам’ятати що він не повинен збігатися з ключовими словами й іменами функцій бібліотеки компілятора мови С.