Главная страница
Навигация по странице:

  • СОДЕРЖАНИЕ АННОТАЦИЯ ................................................................................................. 2

  • Язык С (Керниган, Ричи). Язык сиБ. В. Керниган, Д. М. Ричи


    Скачать 1.46 Mb.
    НазваниеЯзык сиБ. В. Керниган, Д. М. Ричи
    АнкорЯзык С (Керниган, Ричи).pdf
    Дата23.04.2018
    Размер1.46 Mb.
    Формат файлаpdf
    Имя файлаЯзык С (Керниган, Ричи).pdf
    ТипДокументы
    #18413
    страница1 из 23
      1   2   3   4   5   6   7   8   9   ...   23

    ЯЗЫК Си
    Б.В. Керниган, Д.М. Ричи.

    2
    «Язык С» Б.В. Керниган, Д.М. Ричи
    АННОТАЦИЯ
    Язык “C”(произносится “си”) - это универсальный язык программирования, для которого характерны экономичность выражения,
    современный поток управления и структуры данных, богатый набор операторов. Язык “C” не является ни языком “очень высокого уровня”, ни
    “большим” языком, и не предназначается для некоторой специальной области применения. но отсутствие ограничений и общность языка делают его более удобным и эффективным для многих задач, чем языки, предположительно более мощные.
    Язык “C”, первоначально предназначавшийся для написания операционной системы “UNIX” на ЭВМ DEC PDP-11, был разработан и реализован на этой системе Деннисом Ричи. Операционная система,
    компилятор с языка “C” и по существу все прикладные программы системы
    “UNIX” (включая все программное обеспечение, использованное при подготовке этой книги) написаны на “C”. Коммерческие компиляторы с языка
    “C” существуют также на некоторых других ЭВМ, включая IBM SYSTEM/
    370, HONEYWELL 6000, INTERDATA 8/32. Язык “C”, однако, не связан с какими-либо определенными аппаратными средствами или системами, и на нем легко писать программы, которые можно пропускать без изменений на любой ЭВМ, имеющей “C”-компилятор.
    Эта книга предназначена для того, чтобы помочь читателю научиться программировать на языке “C”. Она содержит учебное введение, цель которого - позволить новым пользователям начать программировать как можно быстрее, отдельные главы по всем основным особенностям языка и справочное руководство. Обучение построено в основном на чтении,
    написании и разборе примеров, а не голой формулировке правил. Примеры,
    приводимые в книге, по большей части являются законченными реальными программами, а не отдельными фрагментами. Все примеры были проверены непосредственно с текста книги, где они напечатаны в виде, пригодном для ввода в машину. Кроме указаний о том, как сделать использование языка более эффективным, мы также пытались, где это возможно,
    проиллюстрировать полезные алгоритмы и принципы хорошего стиля и разумной разработки.
    Настоящая книга не является вводным курсом в программирование; она предполагает определенное знакомство с основными понятиями программирования такими как переменные, операторы присваивания, циклы,
    функции. Тем не менее и новичок в программировании должен оказаться в состоянии читать подряд и освоиться с языком, хотя при этом была бы полезной помощь более опытного коллеги.
    По нашему опыту , “C” показал себя приятным, выразительным и

    «Язык С» Б.В. Керниган, Д.М. Ричи
    3
    разносторонним языком на широком множестве разнообразных программ.
    Его легко выучить , и он не теряет своих качеств с ростом опыта программиста.
    Мы надеемся , что эта книга поможет вам хорошо его использовать.
    Вдумчивая критика и предложения многих наших друзей и коллег очень много добавили как для самой книги, так и для нашего удовольствия при ее написании. В частности, Майк Биапси, Джим Блю, Стью Фельдман, Доуг
    Мак-Илрой, Билл Рум, Боб Розин и Ларри Рослер тщательно прочитали множество вариантов. Мы также обязаны Элю Ахо, Стиву Борну, Дэву
    Двораку, Чаку Хэлею, Дебби Хэлей, Мариону Харрису, Рику Холту, Стиву
    Джонсону, Джону Машею, Бобу Митцу, Ральфу Мьюа, Питеру Нельсону,
    Эллиоту Пинсону, Биллу Плагеру, Джерри Спиваку, Кену Томпсону и Питеру
    Вейнбергеру за полезные замечания на различных этапах и Майку Лоску и
    Джо Осанна за неоценимую помощь при печатании книги.
    Брайен В. Керниган
    Деннис М. Ричи

    4
    «Язык С» Б.В. Керниган, Д.М. Ричи
    СОДЕРЖАНИЕ
    АННОТАЦИЯ ................................................................................................. 2
    СОДЕРЖАНИЕ ............................................................................................... 4
    0.1. ВВЕДЕНИЕ. ........................................................................................... 9
    1.
    Учебное введение. ................................................................................ 14 1.1. Hачинаем. .............................................................................................. 14 1.2. Переменные и арифметика. ................................................................. 17 1.3. Оператор FOR. ...................................................................................... 21 1.5. Набор полезных программ. ................................................................. 23 1.5.1.
    Ввод и вывод символов. .............................................................. 23 1.5.2.
    Копирование файла. .................................................................... 23 1.5.3.
    Подсчет символов. ....................................................................... 25 1.5.4.
    Подсчет строк. ............................................................................. 27 1.5.5.
    Подсчет слов. ............................................................................... 28 1.6. Массивы. ............................................................................................... 30 1.7. Функции. ............................................................................................... 32 1.8. Аргументы - вызов по значению. ........................................................ 34 1.9. Массивы символов. .............................................................................. 35 1.10. Область действия: внешние переменные. .......................................... 38
    2.
    ТИПЫ, ОПЕРАЦИИ И ВЫРАЖЕНИЯ. ......................................... 40
    2.1. Имена переменных. .............................................................................. 40 2.2. Типы и размеры данных. ..................................................................... 40 2.3. Константы. ............................................................................................ 41 2.3.1.
    Символьная константа. ............................................................... 42 2.3.2.
    Константное выражение ............................................................. 42 2.3.3.
    Строчная константа ..................................................................... 43 2.4. Описания ............................................................................................... 43 2.5. Арифметические операции. ................................................................. 44 2.6. Операции отношения и логические операции ................................... 45 2.7. Преобразование типов ......................................................................... 46 2.8. Операции увеличения и уменьшения ................................................. 50 2.9. Побитовые логические операции........................................................ 52 2.10. Операции и выражения присваивания................................................ 54 2.11. Условные выражения. .......................................................................... 55 2.12. Старшинство и порядок вычисления. ................................................. 57
    3.
    ПОТОК УПРАВЛЕНИЯ .................................................................... 59
    3.1. Операторы и блоки ............................................................................... 59 3.2. IF - ELSE ................................................................................................ 59 3.3. ELSE - IF ................................................................................................ 61 3.4. Переключатель ...................................................................................... 62 3.5. Циклы - WHILE и FOR ........................................................................ 64 3.6. Цикл DO - WHILE ................................................................................ 67 3.7. Оператор BREAK ................................................................................. 68

    «Язык С» Б.В. Керниган, Д.М. Ричи
    5 3.8. Оператор CONTINUE .......................................................................... 69 3.9. Оператор GOTO и метки ..................................................................... 70
    4.
    ФУНКЦИИ И СТРУКТУРА ПРОГРАММ. ................................... 72
    4.1. Основные сведения. ............................................................................. 72 4.2. Функции, возвращающие нецелые значения. .................................... 75 4.3. Еще об аргументах функций. .............................................................. 78 4.4. Внешние переменные. ......................................................................... 79 4.5. Правила, определяющие область действия. ....................................... 83 4.5.1.
    Область действия. ........................................................................ 83 4.6. Статические переменные. .................................................................... 87 4.8. Блочная структура. ............................................................................... 89 4.9. Инициализация. .................................................................................... 90 4.10. Рекурсия. ............................................................................................... 92 4.11. Препроцессор языка “C”. ..................................................................... 93 4.11.1.
    Включение файлов ...................................................................... 93 4.11.2.
    Макроподстановка ...................................................................... 94
    5.
    УКАЗАТЕЛИ И МАССИВЫ ............................................................ 96
    5.1. Указатели и адреса................................................................................ 96 5.2. Указатели и аргументы функций ......................................................... 98 5.3. Указатели и массивы ......................................................................... 100 5.4. Адресная арифметика ....................................................................... 103 5.5. Указатели символов и функции ........................................................ 106 5.6. Указатели - не целые. ........................................................................ 109 5.7. Многомерные массивы. .................................................................... 110 5.8. Массивы указателей; указатели указателей .................................... 112 5.9. Инициализация массивов указателей. ............................................. 116 5.10. Указатели и многомерные массивы ................................................. 117 5.11. Командная строка аргументов .......................................................... 117 5.12. Указатели на функции ....................................................................... 122
    6.
    СТРУКТУРЫ. .................................................................................. 126
    6.1. Основные сведения. .......................................................................... 126 6.2. Структуры и функции. ....................................................................... 128 6.3. Массивы сруктур. .............................................................................. 130 6.4. Указатели на структуры. ................................................................... 135 6.5. Структуры, ссылающиеся на себя. ................................................... 137 6.6. Поиск в таблице. ................................................................................ 141 6.7. Поля. ................................................................................................... 144 6.8. Объединения. ..................................................................................... 146 6.9. Определение типа .............................................................................. 148
    7.
    ВВОД И ВЫВОД .............................................................................. 150
    7.1. Обращение к стандартной библиотеке ............................................ 150 7.2. Стандартный ввод и вывод - функции GETCHAR и PUTCHAR .. 150 7.3. Форматный вывод - функция PRINTF ............................................. 152

    6
    «Язык С» Б.В. Керниган, Д.М. Ричи
    7.5. Форматное преобразование в памяти .............................................. 157 7.6. Доступ к файлам ................................................................................ 158 7.7. Обработка ошибок - STDERR и EXIT ............................................. 161 7.8. Ввод и вывод строк ........................................................................... 162 7.9. Несколько разнообразных функций ................................................. 163 7.9.1.
    Проверка вида символов и преобразования ........................... 163 7.9.2.
    Функция UNGETC ................................................................... 164 7.9.3.
    Обращение к системе ............................................................... 164 7.9.4.
    Управление памятью ................................................................ 164
    8.
    ИНТЕРФЕЙС СИСТЕМЫ UNIX ................................................. 165
    8.1. Дескрипторы файлов......................................................................... 165 8.2. Низкоуровневый ввод/вывод - операторы READ и WRITE. ......... 166 8.3. Открытие, создание, закрытие и расцепление (UNLINK). ............ 168 8.4. Произвольный доступ - SEEK и LSEEK. ........................................ 170 8.5. Пример - реализация функций FOPEN и GETC. ............................ 171 8.6. Пример - распечатка справочников ................................................. 175 8.7. Пример - распределитель памяти. .................................................... 179
    9.
    ПРИЛОЖЕНИЕ А:
    СПРАВОЧНОЕ РУКОВОДСТВО ПО ЯЗЫКУ ‘C’ .................... 184
    9.1. Введение ............................................................................................. 184 10.
    Лексические соглашения .................................................................. 184 10.1. Комментарии ...................................................................................... 184 10.2. Идентификаторы (имена) .................................................................. 184 10.3. Ключевые слова ................................................................................. 185 10.4. Константы .......................................................................................... 185 10.4.1.
    Целые константы ...................................................................... 185 10.4.2.
    Явные длинные константы ...................................................... 185 10.4.3.
    Символьные константы ............................................................ 186 10.4.4.
    Плавающие константы ............................................................. 186 10.5. Строки ................................................................................................ 186 10.6. Характеристики аппаратных средств .............................................. 187 11.
    Синтаксическая нотация ................................................................... 187 12.
    Что в имене тебе моем? .................................................................... 187 14.
    Преобразования ................................................................................. 189 14.1. Символы и целые ............................................................................... 189 14.2. Типы FLOAT и DOUBLE .................................................................. 189 14.3. Плавающие и целочисленные величины ......................................... 189 14.4. Указатели и целые ............................................................................. 190 14.5. Целое без знака .................................................................................. 190 14.6. Арифметические преобразования .................................................... 190 15.
    Выражения ......................................................................................... 191 15.1. Первичные выражения ...................................................................... 191 15.2. Унарные операции ............................................................................. 193

    «Язык С» Б.В. Керниган, Д.М. Ричи
    7 15.3. Мультипликативные операции ......................................................... 195 15.4. Аддитивные операции....................................................................... 195 15.5. Операции сдвига ................................................................................ 196 15.6. Операции отношения ........................................................................ 196 15.7. Операции равенства .......................................................................... 196 15.8. Побитовая операция ‘и’ .................................................................... 197 15.9. Побитовая операция исключающего ‘или’ Выражение- .....................
    исключающего-или: .......................................................................... 197 15.10. Побитовая операция включающего ‘или’ Выражение- ......................
    включающего-или:............................................................................. 197 15.11.Логическая операция ‘и’ ................................................................... 197 15.12.Операция логического ‘или’ ............................................................. 197 15.13.Условная операция ............................................................................ 198 15.14.Операция присваивания .................................................................... 198 15.15.Операция запятая ............................................................................... 199 16.
    Описания ............................................................................................ 199 16.1. Спецификаторы класса памяти ........................................................ 200 16.2. Спецификаторы типа ......................................................................... 200 16.3. Описатели ........................................................................................... 201 16.4. Смысл описателей ............................................................................. 201 16.5. Описание структур и объединений .................................................. 203 16.6. Инициализация .................................................................................. 206 16.7. Имена типов ....................................................................................... 208 16.8. TYPEDEF ........................................................................................... 209 17.
    Операторы .......................................................................................... 209 17.1. Операторное выражение ................................................................... 209 17.2. Составной оператор (или блок) ........................................................ 210 17.3. Условные операторы ......................................................................... 210 17.4. Оператор WHILE ............................................................................... 210 17.5. Оператор DO ...................................................................................... 211 17.6. Оператор FOR .................................................................................... 211 17.7. Оператор SWITCH ............................................................................ 211 17.8. Оператор BREAK .............................................................................. 212 17.9. Оператор CONTINUE ....................................................................... 212 17.10. Оператор возврата ............................................................................ 213 17.11. Оператор GOTO ................................................................................ 213 17.12. Помеченный оператор ...................................................................... 213 17.13. Пустой оператор ............................................................................... 213 18.
    Внешние определения ....................................................................... 214 18.1. Внешнее определение функции ....................................................... 214 18.2. Внешние определения данных ......................................................... 215 19.
    Правила, определяющие область действия ..................................... 215 19.1. Лексическая область действия ......................................................... 216

    8
    «Язык С» Б.В. Керниган, Д.М. Ричи
    19.2. Область действия внешних идентификаторов ................................ 217 20.
    Строки управления компилятором ................................................... 217 20.1. Замена лексем .................................................................................... 217 20.2. Включение файлов ............................................................................ 218 20.3. Условная компиляция ........................................................................ 218 21.
    Неявные описания ............................................................................. 219 22.
    Снова о типах ..................................................................................... 219 22.1. Структуры и объединения ................................................................. 219 22.2. Функции ............................................................................................. 220 22.3. Массивы, указатели и индексация ................................................... 220 22.4. Явные преобразования указателей ................................................... 221 23.
    Константные выражения ................................................................... 222 24.
    Соображения о переносимости ........................................................ 223 25.
    Анахронизмы ..................................................................................... 224 26.
    Сводка синтаксических правил ........................................................ 224 26.1. Выражения ......................................................................................... 224 26.2. Описания ............................................................................................ 226 26.3. Операторы составной-оператор: ...................................................... 228 26.4. Внешние определения Программа: ................................................. 228 27.
    Присваивание структуры .................................................................. 229 28.
    Тип перечисления .............................................................................. 230 29.
    Таблица изображений непечатных символов языка “C”. ............... 231

    «Язык С» Б.В. Керниган, Д.М. Ричи
    9
      1   2   3   4   5   6   7   8   9   ...   23


    написать администратору сайта