
- •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 Основні елементи мови с
1.1 Алфавіт мови програмування
Будь-яка мова, у тому числі й C, має свій алфавіт – набір символів, які дозволені до використання і сприймаються компілятором. Множина символів, що використовуються у мові С представлена у табл. 1.1.
Таблиця 1.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 в табл. 1.1 використовуються для утворення літералів, ідентифікаторів та ключових слів.
Знаки пунктуації і спеціальні символи (пункт 4, табл. 1.1) використовуються, з одного боку, для організації процесу обчислень, а з іншого боку – для передачі компілятору визначеного набору інструкцій.
Розділові символи (пункт 5, табл. 1.1) відокремлюють один від другого об'єкти, обумовлені користувачем, такі наприклад, як: літерали та ідентифікатори. Послідовність розділових символів розглядається компілятором як один символ (наприклад, послідовність пробілів як один пробіл).
Символьні та стрічкові літерали а також коментарі можуть містити символи не з алфавіту мови С, наприклад, букви російського алфавіту.
1.2 Лексеми
Лексемою називають нероздільну послідовність символів з алфавіту мови С (у найпростішому випадку один символ), які розпізнаються компілятором, тобто компілятор не аналізує компоненти, які входять в цю послідовність.
Лексемами є літерали, ідентифікатори, ключові слова, знаки операцій, а також символи пунктуації, такі як: прямокутні ([]), фігурні ({}) і кутові скобки (<>), двокрапка і кома.
Лексеми між собою можуть бути відокремлені розділовими символами (пробіл, символ табуляції тощо) чи такими іншими лексемами, як знаки операцій. Щоб запобігти розбивці елементів лексеми на декілька частин компілятором забороняється використання розділових символів у ідентифікаторах, багатосимвольних операціях чи ключових словах.
1.3 Ключові слова
Ключові слова – це зарезервовані лексеми, що наділені визначеним змістом. Їх можна використовувати тільки у відповідності зі значенням відомим компілятору мови С. Список ключових слів приведено у таблиці 1.2.
Таблиця 1.2 – Список ключових слів
auto |
default |
extern |
long |
sizeof |
union |
break |
do |
float |
register |
static |
unsigned |
case |
double |
for |
return |
struct |
void |
char |
else |
if |
short |
switch |
volatile |
continue |
enum |
int |
signed |
typedef |
while |