Введение в массивы 231
Использование цикла for с массивами 233
Пример цикла, использующего возвращаемое значение функции 235
Анализ программы 237
Использование функций с возвращаемыми значениями 238
Ключевые понятия 238
Резюме 239
Вопросы для самоконтроля 240
Упражнения по программированию 243
Глава 7. Управляющие операторы С: ветвление и переходы 247
Оператор if 248
Добавление к оператору if конструкции else 250
Еще один пример: знакомство с функциями getchar() и putchar() 251
Семейство функций для работы с символами с type.h 254
Множественный выбор else if 255
Образование пар else и if 258
Другие вложенные операторы i f 259
Давайте будем логичными 263
Альтернативное представление: заголовочный файл iso64 6.h 264
Приоритеты операций 265
Порядок вычисления выражений 265
10 Содержание
Диапазон значений 266
Программа подсче та слов 267
Условная операция ? : 270
Вспомогательные средства для циклов: continue и break 272
Оператор continue 272
Оператор break 275
Выбор из множества вариантов: операторы switch и break 277
Использование оператора switch 278
Пение только первого символа строки 280
Множество меток 280
Операторы switch и if else 283
Оператор goto 283
Избегайте goto 283
Ключевые понятия 286
Резюме 287
Вопросы для самоконтроля 288
Упражнения по программированию 290
Глава 8. Символьный ввод-вывод и проверка достоверности ввода 293
Односимвольный ввод-вывод: getchar() и putchar () 294
Буферы 295
Завершение клавиатурного ввода 297
Файлы, потоки и ввод данных с клавиатуры 297
Конец файла 298
Перенаправление и файлы 301
Перенаправление в Unix, Linux и командной строке Windows 302
Создание дружественного пользовательского интерфейса 306
Работа с буферизированным вводом 306
Смешивание числового и символьного ввода 308
Проверка допустимости ввода 310
Анализ программы 315
Поток ввода н числа 315
Просмотр меню 316
Задачи 316
На пути к более гладкому выполнению 317
Смешивание символьного и числового ввода 319
Ключевые понятия 321
Резюме 322
Вопросы для самоконтроля 322
Упражнения по программированию 323
Глава 9. Функции 325
Обзор функций 326
Создание и использование простой функции 327
Анализ программы 328
Аргументы функции 330
Определение функции с аргументами: формальные параметры 331
Создание прототипа функции с аргументами 332
Вызов функции с аргументами: фактические аргументы 333
Содержание 11
Представление в виде черного ящика 334
Возврат значения из функции с помощью return 334
Типы функций 337
Создание прототипов функций в ANSI С 338
Суть проблемы 338
Решение стандарта ANSI С 339
Отсутствие аргументов и неопределенные аргументы 340
Преимущество прототипов 341
Рекурсия 341
Рекурсия в действии 342
Основы рекурсии 343
Хвостовая рекурсия 344
Рекурсия и изменение порядка на противоположный 346
Преимущества и недостатки рекурсии 348
Компиляция программ, состоящих из двух и более файлов исходного кода 349
Unix 349
Linux 349
Компиляторы командной строки DOS 350
Компиляторы интегрированных сред разработки в Windows и Apple 350
Использование заголовочных файлов 350
Выяснение адресов: операция & 353
Изменение переменных в вызывающей функции 355
Указатели: первое знакомство 357
Операция разыменования: * 357
Объявление указателей 358
Использование указателей для обмена данными между функциями 359
Ключевые понятия 363
Резюме 363
Вопросы для самоконтроля 364
Упражнения по программированию 365
Глава 10. Массивы и указатели 367
Массивы 368
Инициализация 368
Назначенные инициализаторы (С99) 372
Присваивание значений элементам массива 373
Границы массива 374
Указание размера массива 376
Многомерные массивы 377
Инициализация двумерного массива 379
Большее количество измерений 380
Указатели и массивы 381
Функции, массивы и указатели 384
Использование параметров типа указателей 386
Комментарии: указатели и массивы 388
Операции с указателями 389
Защита содержимого массива 393
Использование const с формальными параметрами 394
Дополнительные сведения о ключевом слове const 395
12 Содержание
Указатели и многомерные массивы 397
Указатели на многомерные массивы 400
Совмести мость указателей 401
Функции и многомерные массивы 403
Массивы переменной длины 406
Составные литералы 410
Ключевые понятия 412
Резюме 412
Вопросы для самоконтроля 414
Упражнения по программированию 416
Читать дальше