Язык программирования Си, Керниган Б., Ритчи Д.
Си — универсальный язык программирования. Он тесно связан с системой UNIX, так как был разработан в этой системе, которая как и большинство программ, работающих в ней, написаны на Си. Однако язык не привязан жестко к какой-то одной операционной системе или машине. Хотя он и назван "языком системного программирования", поскольку удобен для написания компиляторов и операционных систем, оказалось, что на нем столь же хорошо писать большие программы другого профиля.
Ввод-вывод символов.
Теперь мы намерены рассмотреть семейство программ по обработке текстов. Вы обнаружите, что многие существующие программы являются просто расширенными версиями обсуждаемых здесь прототипов.
Стандартная библиотека поддерживает очень простую модель ввода-вывода. Текстовый ввод-вывод вне зависимости от того, откуда он исходит или куда направляется, имеет дело с потоком символов. Текстовый поток — это последовательность символов, разбитая на строки, каждая из которых содержит нуль или более символов и завершается символом новой строки. Обязанность следить за тем, чтобы любой поток ввода-вывода отвечал этой модели, возложена на библиотеку: программист, пользуясь библиотекой, не должен заботиться о том, в каком виде строки представляются вне программы.
СОДЕРЖАНИЕ.
Предисловие.
Предисловие к первому изданию.
Введение.
1. Обзор языка.
1.1. Начнем, пожалуй.
1.2. Переменные и арифметические выражения.
1.3. Инструкция for.
1.4. Именованные константы.
1.5. Ввод-вывод символов.
1.5.1. Копирование файла.
1.5.2. Подсчет символов.
1.5.3. Подсчет строк.
1.5.4. Подсчет слов.
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. Препроцессор языка Си.
4.11.1. Включение файла.
4.11.2. Макроподстановка.
4.11.3. Условная компиляция.
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. Другие библиотечные функции.
7.8.1. Операции со строками.
7.8.2. Анализ класса символов и преобразование символов.
7.8.3. Функция ungetc.
7.8.4. Исполнение команд операционной системы.
7.8.5. Управление памятью.
7.8.6. Математические функции.
7.8.7. Генератор случайных чисел.
8. Интерфейс с системой UNIX.
8.1. Дескрипторы файлов.
8.2. Нижний уровень ввода-вывода (read и write).
8.3. Системные вызовы open, creat, close, unlink.
8.4. Произвольный доступ (lseek).
8.5. Пример. Реализация функций fopen и getc.
8.6. Пример. Печать каталогов.
8.7. Пример. Распределитель памяти.
А. Справочное руководство.
А 1. Введение.
А 2. Соглашения о лексике.
А 2.1. Лексемы (tokens).
А 2.2. Комментарий.
А 2.3. Идентификаторы.
А 2.4. Ключевые слова.
А 2.5. Константы.
А 2.6. Строковые литералы.
А 3. Нотация синтаксиса.
А 4. Что обозначают идентификаторы.
А 4.1. Класс памяти.
А 4.2. Базовые типы.
А 4.3. Производные типы.
А 4.4. Квалификаторы типов.
А 5. Объекты и Lvalues.
А 6. Преобразования.
А 6.1. Целочисленное повышение.
А 6.2. Целочисленные преобразования.
А 6.3. Целые и числа с плавающей точкой.
А 6.4. Типы с плавающей точкой.
А 6.5. Арифметические преобразования.
А 6.6. Указатели и целые.
А 6.7. Тип void.
А 6.8. Указатели на void.
А 7. Выражения.
А 7.1. Генерация указателя.
А 7.2. Первичные выражения.
А 7.3. Постфиксные выражения.
А 7.4. Унарные операторы.
А 7.5. Оператор приведения типа.
А 7.6. Мультипликативные операторы.
А 7.7. Аддитивные операторы.
А 7.8. Операторы сдвига.
А 7.9. Операторы отношения.
А 7.10. Операторы равенства.
А 7.11. Оператор побитового И.
А 7.12. Оператор побитового исключающего ИЛИ.
А 7.13. Оператор побитового ИЛИ.
А 7.14. Оператор логического И.
А 7.15. Оператор логического ИЛИ.
А 7.16. Условный оператор.
А 7.17. Выражения присваивания.
А 7.18. Оператор запятая.
А 7.19. Константные выражения.
А 8. Объявления.
А 8.1. Спецификаторы класса памяти.
А 8.2. Спецификаторы типа.
А 8.3. Объявления структур и объединений.
A 8.4. Перечисления.
А 8.5. Объявители.
А 8.6. Что означают объявители.
А 8.7. Инициализация.
А 8.8. Имена типов.
А 8.9. Объявление typedef.
А 8.10. Эквивалентность типов.
А 9. Инструкции.
А 9.1. Помеченные инструкции.
А 9.2. Инструкция-выражение.
А 9.3. Составная инструкция.
А 9.4. Инструкции выбора.
А 9.5. Циклические инструкции.
А 9.6. Инструкции перехода.
А 10. Внешние объявления.
А 10.1. Определение функции.
А 10.2. Внешние объявления.
А 11. Область видимости и связи.
А 11.1. Лексическая область видимости.
А 11.2. Связи.
А 12. Препроцессирование.
А 12.1. Трехзнаковые последовательности.
А 12.2. Склеивание строк.
А 12.3. Макроопределение и макрорасширение.
А 12.4. Включение файла.
А 12.5. Условная компиляция.
А 12.6. Нумерация строк.
А 12.7. Генерация сообщения об ошибке.
А 12.8. Прагма.
А 12.9. Пустая директива.
А 12.10. Заранее определенные имена.
А 13. Грамматика.
B. Стандартная библиотека.
В 1. Ввод-вывод: <stdio.h>.
В 1.1. Операции над файлами.
В 1.2. Форматный вывод.
В 1.3. Форматный ввод.
В 1.4. Функции ввода-вывода символов.
В 1.5. Функции прямого ввода-вывода.
В 1.6. Функции позиционирования файла.
В 1.7. Функции обработки ошибок.
В 2. Проверки класса символа: <ctype.h>.
В 3. Функции, оперирующие со строками: <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>.
С. Перечень изменений.
Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу Язык программирования Си, Керниган Б., Ритчи Д. - fileskachat.com, быстрое и бесплатное скачивание.
Скачать pdf
Ниже можно купить эту книгу по лучшей цене со скидкой с доставкой по всей России.Купить эту книгу
Скачать - pdf - Яндекс.Диск.
Дата публикации:
Теги: учебник по программированию :: программирование :: Керниган :: Ритчи
Смотрите также учебники, книги и учебные материалы:
Следующие учебники и книги:
- Программирование на Visual Fortran, Алгазин С.Д., Кондратьев В.В., 2008
- Программирование под Android, Для профессионалов, Харди Б., Филлипс Б., 2014
- Learning Python, Lutz M., 2013
- Паскаль для школьников, Ушаков Д., Юркова Т., 2011
Предыдущие статьи:
- Встроенные функции Visual Basic, Климов А.
- Программирование в Linux, самоучитель, Иванов Н.Н., 2012
- SCAD Office, Версия 21, Вычислительный комплекс SCAD++, Карпиловский В.С., Криксунов Э.З., Маляренко А.А., Перельмутер А.В., Перельмутер М.А., Фиалко С.Ю., 2015
- VisualBasic - крепкий орешек, вводный курс в Visual Basic