Оглавление Введение 1
О технологии чтения 6
Глава 1. Кратко о языке С 9
Простые примеры 10
Условные циклы 19
Указатели 21
Заключение 23
Глава 2. Величины 25
Типы данных 25
Расположение объявлений 29
Инициализация переменных 30
Более подробно о времени жизни и области видимости 36
Классы памяти 39
Объявления внутреннего уровня 40
Объявления внешнего уровня 42
О преобразованиях типов 43
Объявления вида typedef 47
Заключение 48
Глава 3. Ввод/вывод 51
Форматный ввод/вывод 51
Потоковый ввод/вывод 54
Интересный пример вывода 55
Интересный пример ввода 55
Несколько полезных функций 56
Функции putchar() и getchar() 56
Функции textcolor() и textbkcolor() 57
Функция gotoxy() 58
Команда перевода курсора на следующую строку 58
Глава 4. Операции в С 61
Список операций 61
Арифметические операции 64
Операция % 65
Операции сдвига 66
Битовая логика 68
Логические операции 69
Операция следования 70
Операции индексации и построения выражений 71
Операция определения размера объекта sizeof 72
Арифметическое условие 73
Старшинство и порядок вычисления 74
Еще несколько замечаний о порядке выполнения операций 75
Глава 5. Операторы языка С 77
Общие сведения 77
Циклы 77
Цикл с предусловием 80
Цикл с постусловием 81
О структуре цикла 83
Замечания о цикле с постусловием 84
Конструкции выбора 86
Условный оператор 86
Оператор-переключатель 89
Оператор break 91
Составной оператор 92
Оператор продолжения continue 93
Оператор-выражение 94
Оператор goto 95
Пустой оператор ; 96
Оператор возврата return 96
Глава 6. Константы 99
Простые константы 99
Перечисления 104
Глава 7. Массивы 107
Общие правила работы с массивами 107
Инициализация массива символов 115
Заключение 116
Глава 8. Структуры и объединения 117
Общие сведения 117
Структуры 118
Замечание об инициализации 120
Объединения 121
Замечание об инициализации объединений 125
Поля и экономия памяти 126
Заключение 129
Глава 9. Указатели 131
Объявление и создание указателей 131
Доступ к элементам структуры 136
Выделение и освобождение памяти 142
Арифметические операции над указателями 143
Замечание о шаге указателя 148
Указатель в никуда 151
Заключение 151
Глава 10. Строки 153
Нультерминальные строки С 153
О вложении присваивания 161
Пример упорядочения строк 162
Полезные функции 163
Функция strstr() 164
Функции strlow() и strupr() 164
Функция strset() 165
Функция strcmp() 166
Заключение 166
Глава 11. Связные списки и деревья 167
Построение связного списка 167
Задача 1. Обход связного списка 168
Задача 2. Обход связного списка неизвестной длины 169
Задача 3. Обход связного списка в двух направлениях 171
Несколько замечаний о методах обхода 172
Задача 4. Вставка элемента в связный список 173
Задача 5. Вставка связного списка 175
Задача 6
. Сортировка по возрастанию массива, организованного в виде связного списка 176
Деревья 178
Задача 7. Построение двоичного дерева 178
Задача 8
. Обмен местами значения левой и правой ветви двоичного дерева 179
Заключение 182
Глава 12. Файлы данных 183
Неформатный ввод/вывод 183
Форматный файловый ввод/вывод 189
Полезные функции 191
Функция fseek() 191
Функция fgetpos() 192
Функция rewind() 192
Функция creat() 193
Заключение 194
Глава 13. Построение сложной программы 195
Общие сведения 195
Передача одномерного массива 198
Пример 1. Расчет максимального в массиве 198
Пример 2
. Расчет максимального с передачей массива, как параметра 200
Пример 3
. Расчет максимального с передачей массива, как указателя 201
Передача многомерных массивов 203
Передача параметров по ссылке 204
Параметр по умолчанию 205
О возвращаемых значениях 206
Перегрузка функций 209
Указатель на функцию 212
Комментарии 215
Заключение 216
Глава 14. Графика языка С 217
Общая информация о графических режимах 217
Некоторые функции 219
Функция arc() 219
Функция bar() 219
Функция bar3d() 220
Функция circle() 220
Функция cleardevice() 220
Функция closegraph() 220
Функция drawpoly() 221
Функция ellipse() 221
Функция floodfill() 222
Функция getbkcolor() 222
Функция getcolor() 222
Функции getmaxx() и getmaxy() 222
Функция getpixel() 222
Функции getx() и gety() 223
Функция linerel() 223
Функция lineto() 223
Функция moverel() 223
Функция moveto() 223
Функция outtext() 224
Функция outtextxy() 224
Функция putpixel() 224
Функция rectangle() 224
Функция sector() 225
Функция setbkcolor() 225
Функция setcolor() 225
Функция setfillstyle() 225
Глава 15. Директивы 227
Директива include 227
Директива define 229
Строкообразующий оператор # 231
Замечание о расположении макросов 232
Заключение 233
ПРИЛОЖЕНИЯ 235
Приложение 1. Терминология 237
Приложение 2. Примеры задач 245
Предметный указатель 299
VIII Оглавление VII Оглавление