- •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 Динамічне виділення пам'яті
3.5 Класифікація типів даних
Типи даних мови С відіграють важливу роль в обробці даних. Під типом данихрозуміють множину припустимих значень цих даних і множину дозволених операцій над ними. Водночас тип даних визначає і розмір пам'яті, що займають змінні і літерали даного типу. Кожен тип даних має ім'я. Пам'ять не виділяється для типу даних, а виділяється для розміщення змінної або літерала.
У мові С виділяють наступні категорії типів:
- прості типи даних;
- похідні типи даних.
Прості типи мають імена, які є ключовими словами мови.
До простих типів належать: скалярні типи і порожній тип – void.
Тип voidне має значення і введений для опису функцій, які не повертають значень, та для деяких інших цілей.
Скалярні типи поділяються на цілочисельнітадійсні типи.
Cимвольні і цілі типи даних є цілочисельним типом, для якого визначені всі операції з цілими числами.
Похідні типи визначаються на основі простих типів. Похідні типи поділяються на скалярні і структурні (агрегатні).
До скалярних похідних типів належать:
- перерахування (enum) – множина поіменованих цілих значень;
- покажчики (ім'я_типу *);
- посилання (ім'я_типу &).
І’мя типу у покажчиках та посиланнях це один з простих типів.
Структурні похідні типи:
- масиви (тип_елементу ім'я_масиву [число_елементів]);
- структури ( struct );
- об'єднання ( union ).
Ім’ям структурних похідних типів є ідентифікатор визначений користувачем.
На рис. 3.1 зображена класифікація типів даних мови С.
Рисунок 3.1 – Класифікація типів даних
3.6 Літерали
Літерал– це число, символ чи стрічка символів, які задаються в програмі у вигляді значення. Літерали називають також константами.
У мові С розділяють чотири типи літералів: цілі, дійсні, символьні та стрічкові літерали.
Цілий літералможе представляти число в одній з форм: десятковій, вісімковій чи шістнадцятковій.
Десятковий літерал складається з однієї чи декількох десяткових цифр, причому перша цифра не повинна бути нулем (у противному випадку число буде сприйнято як вісімкове).
Першим символом вісімкового літералає нуль, наступними символами є вісімкові цифри (0, 1, 2, 3, 4, 5, 6, 7, 8).
Шістнадцятковий літералпочинається з обов'язкової послідовності 0х чи 0Х, наступними символами є шістнадцяткові цифри (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F).
Приклади цілих літералів наведені у табл. 3.2.
Таблиця 3.2 . Цілі літерали
Десяткові літерали |
Вісімкові літерали |
Шістнадцяткові літерали |
16 |
020 |
0x10 |
63 |
077 |
0x3F |
171 |
0253 |
0xAB |
Кожному цілому літералу відповідно до його значення присвоюється тип, що визначає перетворення, які повинні бути виконані, якщо літерал використовується у виразах.
Для того щоб цілий літерал визначити типом long, досить наприкінці літерала поставити букву "l" чи "L".
Приклад 2.Цілі літерали типу long.
5l, 6l, 128L, 0105L, OX2A11L.
Дійснийлітерал– десяткове число, представлене у вигляді дійсної величини з десятковою точкою чи експонентою, має наступний формат:
[ціла частина ].[дробова частина ] [ Е|е [+|-] експонента ] .
Дійсне число, складається з цілої і дробові частини і (чи) експоненти. Дійсні літерали, представляють додатні величини подвоєної точності (мають тип double).
Приклад 3. Дійсні літерали типуdouble.
115.75, 1.5Е-2, -0.025, .075, -0.85Е2
Для того щоб дійсний літерал визначити типом float, досить наприкінці літералу поставити букву "f" чи "F".
Приклад 4. Дійсні літерали типу float
115.75f, 1.5Е-2f, -0.025F, .075F, -0.85Е2f
Символьний літерал– представляє собою символ заключений у одинарні кавички (‘’). Керуюча послідовність розглядається як одиночний символ,тому вона є символьним літералом. Значенням символьного літералу є числовий код символу.
Приклад 5. Символьні літерали.
‘ ’ - пробіл,
‘Q’- буква Q,
‘\n’ - символ нового рядка,
‘\’ - зворотна дробова риса,
‘\t’ – горизонтальна табуляція.
Символьні літерали мають тип int і при перетворенні типів доповнюються знаком.
Стрічковий літерал- послідовність символів (включаючи малі та великі букви російського і латинського алфавітів а також цифри) заключені в подвійні лапки (“”) .
Приклад 6. Стрічкові літерали.
“Бамбарабия Кергуду”, “місто Вінниця”, “Hello world! ”.
У кінець кожного стрічкового літерала компілятором додається нульовий символ, що відповідає керуючій послідовності \0.
Стрічковий літерал має тип char[]. Це означає, що рядок розглядається як масив символів. Відзначимо важливу особливість, число елементів масиву дорівнює числу символів у рядку плюс 1, тому що нульовий символ (символ кінця рядка) також є елементом масиву.