5.1. Форматне виведення даних.................................. 67
5.2. Форматне введення даних................................... 75
Запитання та завдання для самоконтролю.......................... 83
Розділ 6. ОПЕРАТОРИ........................................................................................................................ 85
6.1. Оператори-вирази......................................................................................................... 86
6.2. Умовні оператори.......................................................................................................... 87
6.2.1. Умовний оператор if.......................................................................................... 87
6.2.2. Оператор вибору switch.................................................................................... 90
6.2.3. Завершення роботи програми функцією exit()........................................... 93
6.3. Оператори циклу............................................................................................................ 94
6.3.1. Оператор for............................... „....................................................................... 94
6.3.2. Оператор while.................................................................................................. 100
6.3.3. Оператор do-while............................................................................................ 101
6.4. Оператори переходу.................................................................................................. 102
6.4.1. Оператор goto...................................................................................................... 103
6.4.2. Оператор break................................................................................................. 103
6.4.3. Оператор continue............................................................................................ 104
6.4.4. Оператор return................................................................................................. 105
6.5. Використання псевдовипадкових чисеп.............................................................. 106
Запитання та завдання для самоконтролю................................................................ 109
Розділ 7. ВКАЗІВНИКИ.................................................................................................................... 112
7.1. Оголошення вказівників, звертання до даних через вказівники..................... 112
7.2. Адресна арифметика.................................................................................................. 117
7.3. void-вказівники. Типізація вказівників..................................................................... 120
Запитання та завдання для самоконтролю................................................................ 124
Розділ 8. МАСИВИ............................................................................................................................ 125
8.1. Одновимірні масиви.................................................................................................... 125
8.1.1. Оголошення та ініціалізація масивів.......................................................... 126
8.1.2. Звертання до елементів масиву через індекси та через вказівники.. 127
8.2. Багатовимірні масиви................................................................................................. 131
8.2.1. Розташування в пам'яті та ініціалізація.................................................... 131
8.2.2. Вказівники у багатовимірних масивах......................................................... 134
Запитання та завдання для самоконтролю................................................................ 140
Розділ 9. СИМВОЛЬНІ РЯДКИ...................................................................................................... 141
9.1. Оголошення та ініціалізація символьних рядків................................................. 141
9.2. Звертання до елементів символьних рядків........................................................ 143
9.3. Введення/виведення символів і символьних рядків........................................... 144
9.3.1. Введення/виведення символів...................................................................... 145
9.3.2. Введення/виведення символьних рядків.................................................... 146
9.4. Бібліотечні функції для роботи з символами та символьними рядками...... 150
9.4.1. Функції класифікації і перетворення символів.......................................... 150
9.4.2. Функції операцій над символьними рядками............................................. 152
9.4.3. Функції перетворення рядків символів у числа та зворотних перетворень . 155
9.5. Масиви символьних рядків і масиви вказівників.................................................. 157
9.5.1. Масиви символьних рядків............................................................................. 157
9.5.2. Масиви вказівників на символи рядків......................................................... 159
9.5.3. Збереження символьних рядків у динамічній пам'яті............................. 160
Запитання та завдання для самоконтролю................................................................ 162
Розділ 10. СТРУКТУРИ ТА ОБ'ЄДНАННЯ.................................................................................. 164
10.1. Структури..................................................................................................................... 164
10.1.1. Оголошення та ініціалізація структур....................................................... 164
10.1.2. Розмір структури. Операція присвоєння для структур........................ 167
10.1.3. Вкладені структури, масиви структур, вказівники на структури......... 168
10.1.4. Звертання до елементів структур.............................................................. 170
10.2. Перейменування типів............................................................................................. 175
10.3. Об'єднання..................................................................................................................... 176
10.4. Поля бітів..................................................................................................................... 179
Запитання та завдання для самоконтролю................................................................ 182
Розділ 11. ФУНКЦІЇ........................................................................................................................... 183
11.1. Структура функцій..................................................................................................... 184
11.2. Виклик функції. Прототипи функцій...................................................................... 187
11.3. Взаємодія фактичних і формальних параметрів функції............................... 190
11.4. inline-функції................................................................................................................ 194
11.5. Масиви та символьні рядки як параметри функцій.......................................... 195
11.5.1. Масиви - параметри функцій....................................................................... 195
11.5.2. Символьні рядки - параметри функцій..................................................... 197
11.6. Робота з параметрами командного рядка.......................................................... 202
11.7. Багатовимірні масиви як параметри функцій..................................................... 205
11.8. Опрацювання структур у функціях........................................................................ 209
11.9. Вказівникитіа функції................................................................................................. 212
11.9.1. Оголошення вказівника на функцію. Звертання через вказівник...... 212
11.9.2. Вказівник на функцію як параметр функцій............................................. 213
11.9.3. Функції, що повертають вказівник на функцію ...................................... 216
11.9.4. Масиви вказівників на функцію.................................................................... 218
11.10. Рекурсивні функції................................................................................................... 222
11.11. Функції з неоголошеними параметрами............................................................ 227
11.11.1. Безпосереднє звертання до неоголошених параметрів.................. 228
11.11.2. Макрозасоби для роботи з неоголошеними параметрами.............. 230
Запитання та завдання для самоконтролю................................................................ 232
Розділ 12. КЛАСИ ПАМ'ЯТІ ДАНИХ.............................................................................................. 235
12.1. Клас пам'яті, час існування та видимість об'єкта.............................................. 235
12.2. Специфікатори класів пам'яті................................................................................ 238
12.3. Багатофайлові програми ....................................................................................... 242
Запитання та завдання для самоконтролю................................................................ 244
Розділ 13. РОБОТА З ДАНИМИ В ДИНАМІЧНІЙ ПАМ'ЯТІ.................................................... 246
13.1. Стандартні функції динамічного виділення пам'яті......................................... 247
13.2. Використання масивів вказівників на динамічні дані....................................... 250
13.2.1. Приклад застосування статичного масиву вказівників........................ 250
13.2.2. Створення динамічного масиву вказівників............................................ 253
13.3. Динамічні списки........................................................................................................ 257
13.3.1. Однозв'язні списки................................... ,..................................................... 259
13.3.2. Двозв'язні лінійні списки............................. ,................................................ 268
13.4. Двійкові дерева........................................................................................................... 278
Запитання та завдання для самоконтролю................................................................ 294
Розділ 14. МОДЕЛІ ПАМ'ЯТІ BORLAND С. КОРОТКІ Й ДОВГІ ВКАЗІВНИКИ................... 296
14.1. Сегментна організація пам'яті............................................................................... 296
14.2. Моделі розподілу пам'яті........................................................................................ 298
14.3. Короткі та довгі вказівники. Модифікатори вказівників................................... 299
14.4. Безпосереднє програмування відеопам'яті....................................................... 304
14.5. Особливості звертання до динамічної пам'яті через функцГі' BcrtajuJ C.. 307
Запитання та завдання для самоконтролю................................................. ,............. 310
Розділ 15. ОБМІН ДАНИМИ З ФАЙЛАМИ.................................................................................. 311
15.1. Файли і потоки, буферизація даних..................................................................... 312
15.2. Групи функцій для роботи з потоками................................................................. 313
15.3. Відкриття/закриття потоків..................................................................................... 314
15.4. Стандартні потоки, перескерування потоків..................................................... 316
15.5. Функції потокового введення/виведення даних................................................ 317
15.5.1. Посимвольний обмін даними....................................................................... 318
15.5.2. Файловий обмін рядками символів............................................................ 320
15.5.3. Обмін блоками даних......................................................................................... 322
15.5.4. Форматне введення/виведення даних.......................................................... 324
15.6. Встановлення поточної позиції файла................................................................... 326
15.7. Функції аналізу помилок............................................................................................... 328
15.8. Керування буферизацією даних............................................................................ 330
15.9. Витирання та перейменування файлів............................................................... 332
15.10. Інші засоби для роботи з файлами.................................................................... 335
15.10.1. Функції <dir.h> для роботи з каталогами та файлами........................ 335
15.10.2. Низькорівневе звертання до файлів....................................................... 335
Запитання та завдання для самоконтролю................................................................ 337
Розділ 16. КОНСОЛЬНИЙ ОБМІН ДАНИМИ............................................................................. 339
16.1. Керування консольним виведенням текстової інформації............................ 340
16.1.1. Встановлення атрибутів символів............................................................. 341
16.1.2. Формування текстових вікон........................................................................ 344
16.1.3. Виведення тексту у вікно екрана................................................................ 350
16.1.4. Редагування рядків вікна.............................................................................. 352
16.1.5. Керування позицією та формою текстового курсора........................... 353
16.2. Консольне введення даних ................................................................................... 354
16.2.1. Короткий опис процесу введення даних з клавіатури......................... 354
16.2.2. Функції консольного введення даних........................................................ 356
16.2.3. Аналіз стану клавіш-модифікаторів........................................................... 360
Запитання та завдання для самоконтролю................................................................ 361
Розділ 17. ДИРЕКТИВИ ПРЕПРОЦЕСОРА................................................................................ 363
17.1. Директива включення #include.............................................................................. 364
17.2. Директиви макропідстановок #define та #undef............................................... 365
17.2.1. Текстові макропідстановки........................................................................... 365
17.2.2. Макроси з параметрами............................................................................... 366
17.2.3. Операції # та ## у директиві #define......................................................... 368
17.2.4. Директива #undef............................................................................................ 369
17.3. Директиви умовної компіляції................................................................................. 370
17.3.1. Директиви #if, #else, #elif та #endif........................................................... 370
17.3.2. Директиви #ifdef, #ifndef.............................................................................. 372
17.4. Стандартні макроси................................................................................................ 374
17.5. Перегляд результатів препроцесування........................................................... 375
17.6. Інші директиви препроцесора.............................................................................. 377
Запитання та завдання для самоконтролю................................................................ 379