Kernighan, B. W. and Ritchie, D. M. "The 'C' Programming Language"; Full Content
Язык программирования "C"
- Аннотация
- Введение
- 1. Учебное введение
- Введение
- 1.1. Нaчинаем
- 1.2. Переменные и арифметика
- 1.3. Оператор for
- 1.4. Символьные константы
- 1.5. Набор полезных программ
- 1.5.1. Ввод и вывод символов
- 1.5.2. Копирование файла
- 1.5.3. Подсчет символов
- 1.5.4. Подсчет строк
- 1.5.5. Подсчет слов
- 1.6. Массивы
- 1.7. Функции.
- 1.8. Аргументы - вызов по значению.
- 1.9. Массивы символов.
- 1.10. Область действия: внешние переменные.
- 1.11. Резюме
- 1.2. Переменные и арифметика
- 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. Старшинство и порядок вычисления.
- 2.2. Типы и размеры данных.
- 3. Поток управления
- 3.1. Операторы и блоки
- 3.2. if - else
- 3.3. else - if
- 3.4. Переключатель
- 3.5. Циклы - while и for
- 3.6. Цикл do - while
- 3.7. Оператор break
- 3.8. Оператор continue
- 3.9. Оператор goto и метки
- 3.2. if - else
- 4. Функции и структура программ.
- 4.1. Основные сведения.
- 4.2. Функции, возвращающие нецелые значения.
- 4.3. Еще об аргументах функций
- 4.4. Внешние переменные.
- 4.5. Правила, определяющие область действия.
- 4.6. Статические переменные.
- 4.7. Регистровые переменные.
- 4.8. Блочная структура.
- 4.9. Инициализация.
- 4.10. Рекурсия.
- 4.11. Препроцессор языка 'C'
- 4.2. Функции, возвращающие нецелые значения.
- 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. Указатели на функции
- 5.2. Указатели и аргументы функций
- 6. Структуры.
- 6.1. Основные сведения.
- 6.2. Структуры и функции.
- 6.3. Массивы сруктур.
- 6.4. Указатели на структуры.
- 6.5. Структуры, ссылающиеся на себя.
- 6.6. Поиск в таблице.
- 6.7. Поля.
- 6.8. Об'единения.
- 6.9. Определение типа
- 6.2. Структуры и функции.
- 7. Ввод и вывод.
- 7.1. Обращение к стандартной библиотеке.
- 7.2. Стандартный ввод и вывод - функции getchar и putchar
- 7.3. Форматный вывод - функция printf
- 7.4. Форматный ввод - функция scanf.
- 7.5. Форматное преобразование в памяти.
- 7.6. Доступ к файлам.
- 7.7. Обработка ошибок - stderr и exit.
- 7.8. Ввод и вывод строк.
- 7.9. Несколько разнообразных функций
- 7.2. Стандартный ввод и вывод - функции getchar и putchar
- 8. Интерфейс системы UNIX
- 8.1. Дескрипторы файлов.
- 8.2. Низкоуровневый ввод/вывод - операторы read и write.
- 8.3. Открытие, создание, закрытие и расцепление (unlink).
- 8.4. Произвольный доступ - seek и lseek.
- 8.5. Пример - реализация функций fopen и getc.
- 8.6. Пример - распечатка справочников
- 8.7. Пример - распределитель памяти.
- 8.2. Низкоуровневый ввод/вывод - операторы read и write.
- 9. Предметный указатель
Приложение A: справочное руководство по языку 'C'.
- 10. Введение
- 11. Лексические соглашения.
- 11.1. Комментарии
- 11.2. Идентификаторы (имена)
- 11.3. Ключевые слова.
- 11.4. Константы.
- 11.4.1. Целые константы.
- 11.4.2. Явные длинные (long) константы.
- 11.4.3. Символьные константы.
- 11.4.4. Плавающие константы.
- 11.5. Строки.
- 11.6. Характеристики аппаратных средств.
- 11.2. Идентификаторы (имена)
- 12. Синтаксическая нотация.
- 13. Что значит имя?
- 14. Об'екты и l-значения.
- 15. Преобразования.
- 13. Что значит имя?
- 15.1. Символы и целые.
- 15.2. Типы float и double - плавающей и двойной точности.
- 15.3. Плавающие и целочисленные величины.
- 15.4. Указатели и целые
- 15.5. Целое без знака.
- 15.6. Арифметические преобразования.
- 15.2. Типы float и double - плавающей и двойной точности.
- 16. Выражения.
- 16.1. Первичные выражения.
- 16.2. Унарные операции.
- 16.3. Мультипликативные операции
- 16.4. Аддитивные операции.
- 16.5. Операции сдвига.
- 16.6. Операции отношения.
- 16.7. Операции равенства.
- 16.8. Побитовая операция 'и'
- 16.9. Побитовая операция исключающего 'или'
- 16.10. Побитовая операция включающего 'или'
- 16.11. Логическая операция 'и'
- 16.12. Операция логического 'или'
- 16.13. Условная операция.
- 16.14. Операция присваивания
- 16.15. Операция запятая.
- 16.2. Унарные операции.
- 17. Описания.
- 17.1. Спецификаторы класса памяти.
- 17.2. Спецификаторы типа.
- 17.3. Описатели.
- 17.4. Смысл описателей.
- 17.5. Описание структур и об'единений.
- 17.6. Инициализация.
- 17.7. Имена типов.
- 17.8. Typedef.
- 17.2. Спецификаторы типа.
- 18. Операторы.
- 18.1. Операторное выражение.
- 18.2. Составной оператор (или блок).
- 18.3. Условные операторы.
- 18.4. Оператор while.
- 18.5. Оператор do.
- 18.6. Оператор for.
- 18.7. Оператор switch.
- 18.8. Оператор break.
- 18.9. Оператор continue.
- 18.10. Оператор возврата.
- 18.11. Оператор goto.
- 18.12. Помеченный оператор.
- 18.13. Пустой оператор.
- 18.2. Составной оператор (или блок).
- 19. Внешние определения.
- 19.1. Внешнее определение функции.
- 19.2. Внешние определения данных.
- 20. Правила, определяющие область действия.
- 20.1. Лексическая область действия.
- 20.2. Область действия внешних идентификаторов.
- 21. Строки управления компилятором.
- 21.1. Замена лексем.
- 21.2. Включение файлов
- 21.3. Условная компиляция.
- 21.4. Управляющая строка - line.
- 21.2. Включение файлов
- 22. Неявные описания.
- 23. Снова о типах.
- 23.1. Структуры и об'единения.
- 23.2. Функции.
- 23.3. Массивы, указатели и индексация.
- 23.4. Явные преобразования указателей.
- 23.2. Функции.
- 24. Константные выражения.
- 25. Соображения о переносимости.
- 26. Анахронизмы.
- 27. Сводка синтаксических правил.
- 25. Соображения о переносимости.
- 27.1. Выражения.
- 27.2. Описания.
- 27.3. Операторы
- 27.4. Внешние определения
- 27.5. Препроцессор
- 27.2. Описания.
- 28. Последние изменения языка 'C' (15 ноября 1978 г.)
- 28.1. Присваивание структуры
- 28.1. Тип перечисления
- 29. Таблица изображений непечатных символов языка 'C'