Предисловие
Предисловие к первому изданию

Глава 1. Обзор языка
1.1. Начнем, пожалуй
1.2. Переменные и арифметические выражения
1.3. Инструкция for
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. Операторы и выражения присваивания
2.11. Условные выражения
2.12. Приоритет и очередность вычислений

Глава 3. Управление
3.1. Инструкции и блоки
3.2. Конструкция if-else
3.3. Конструкция else-if
3.4. Переключатель switch
3.5. Циклы while и for
3.6. Цикл do-while
3.7. Инструкции break и continue
3.8. Инструкция goto и метки
Глава 4. Функции и структура программы
4.1. Основные сведения о функциях
4.2. Функции, возвращающие нецелые значения
4.3. Внешние переменные
4.4. Правила областей видимости
4.5. Заголовочные файлы
4.6. Статические переменные
4.7. Регистровые переменные
4.8. Блочная структура
4.9. Инициализация
4.10. Рекурсия
4.11. Препроцессор языка Си

Глава 5. Указатели и массивы
5.1. Указатели и адреса
5.2. Указатели и аргументы функций
5.3. Указатели и массивы
5.4. Адресная арифметика
5.5. Символьные указатели функции
5.6. Массивы указателей, указатели на
указатели
5.7. Многомерные массивы
5.8. Инициализация массивов и указателей
5.9. Указатели против многомерных массивов
5.10. Аргументы в командной строке
5.11. Указатели на функции
5.12. Сложные объявления

Глава 6. Структуры
6.1. Основные сведения о структурах
6.2. Структуры и функции
6.3. Массивы структур
6.4. Указатели на структуры
6.5. Структуры со ссылками на себя
6.6. Просмотр таблиц
6.7. Средство typedef
6.8. Объединения
6.9. Битовые поля

Глава 7. Ввод-вывод
7.1. Стандартный ввод-вывод
7.2. Форматный вывод (printf)
7.3. Списки аргументов переменной длины
7.4. Форматный ввод (scanf)
7.5. Доступ к файлам
7.6. Управление ошибками (stderr и exit)
7.7. Ввод-вывод строк
7.8. Другие библиотечные функции

Глава 8. Интерфейс с системой UNIX
8.1. Дескрипторы файлов
8.2. Нижний уровень ввода-вывода (read и
write)
8.3. Системные вызовы open, creat, close,
unlinc
8.4. Произвольный доступ (lseek)
8.5. Пример. Реализация функций fopen и
getc
8.6. Пример. Печать каталогов
8.7. Пример. Выделитель памяти

Приложение А. Справочное руководство
А1. Введение
А2. Соглашения о лексике
A3. Нотация синтаксиса
А4. Что обозначают идентификаторы
A5. Объекты и lvalue
А6. Преобразования
А7. Выражения
А8. Объявления
А9. Инструкции
А10. Внешние объявления
А11. Область видимости и связи
А12. Препроцессирование
А13. Грамматика

Приложение В. Стандартная библиотека
В1. Ввод-вывод: stdio.h
В2. Проверки класса символа: ctype.h
ВЗ. Функции, оперирующие со строками:
string.h
В4. Математические функции: math.h
В5. Функции общего назначения: stdlib.h
В6. Диагностика: assert.h
В7. Списки аргументов переменной длины:
stdarg.h
В8. Далекие переходы: setjmp.h
В9. Сигналы: signal.h
В10. Функции даты и времени: time.h
В11. Зависящие от реализации пределы:
limits.h и float.h

Приложение С. Перечень изменений
Предметный указатель