
Kernighan, B. W. and Ritchie, D. M. "The 'C' Programming Language"; Chapter 9 Предметный указатель $ А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я $ & адреса извлечение, операция Раздел 5.1 > больше, операция 28 >= больше или равно, операция 28 - вычитание, операция 28 / деление, операция 11 28 % деление по модулю, операция 28 ~ дополнение, операция 32 * косвенная адресация, операция 58 && логическое "и", операция 17 28 32 || Логическое "или", операция 17 28 32 ! логическое отрицание, операция 28 < меньше, операция 28 <= меньше или равно, операция 28 != неравенство, операция 14 28 \0 нулевой символ 21 \ обратная косая черта, символ 9 26 | Побитовое включающее "или", операция 68 & побитовое "и", операция 32 ^ побитовое исключающее "или", операция 32 == равенство, операция 16 28 << сдвиг влево, операция 32 >> сдвиг вправо, операция 32 + сложение, операция 28 ++ увеличение, операция 15 31 65 -> указатель на член структуры, операция 75 76 -- уменьшение, операция 15 31 65 * умножение, операция 28 - унарный минус, операция 28 \ условная последовательность, символ 9 26 ?: условное выражение Раздел 2.11 А автоматические переменные 19, 22, 48 автоматические переменные, инициализация 22, 27, 54 автоматические переменные, область действия 50 аддитивные операции 28 адреса извлечение, операция, & 58 адресная арифметика 6, 62 адрес переменной 20, 58 антипереполнение 28 аргумент, подмассив 61 аргумент, указатель 62 аргумент, список 9 аргумент, преобразование 30 аргументы, вектор аргументов командной строки (argv) 70 аргументы, инструкция #define 56 аргументы, командная строка 70 аргументы, переменное число 47 аргументы функции 9, 19 аргументы, число аргументов в командной строке (argc) 70 арифметика указателей 58, 60, 62, 71, 79 арифметические операции 28 арифметические преобразования 29 арифметические типы ассоциативность операций 35 Б байт 78 безбуферный ввод 96 безбуферная функция getchar 97 бесконечный цикл 39 бестипный язык 6 бесформатный ввод 60 библиотека стандартная 7, 60, 62, 78, 87, 96, 99 библиотечная функция 9, 44, 50 биты, идиомы обработки 84 биты, поля битов 98 блок 37, 53 блочная структура 6, 37, 53 больше или равно, операция, >= 28 больше, операция, > 28 В ввод без буфера 96 ввод, возврат введенного символа 51 ввод и вывод через терминал 13, 87, 96 ввод, перенаправление 87 ввод с буфером 96 ввод символов 13 ввод с преобразованием 59 ввод форматный 11, 89 високосный год, определение 28 вложенная структура 75 вложенный оператор присваивания 14, 17 внешнее определение 22 внешние имена, длина 25 внешние переменные 22, 48 внешние переменные, инициализация 28, 48, 50, 54 внешние переменные класса static 52 внешние переменные, описание 22 внешние переменные, определение 22, 23 внутренние имена, длина 25 внутренние переменные класса static 52 возведение в степень 19 возврат на одну позицию, символ \в 9 возврат символов в файл ввода 51 восьмеричная константа 26 восьмеричная символьная константа 26 выбор варианта, префикс casl 38 выбор из нескольких вариантов 18, 38 выбор по умолчанию, префикс default 38 вывод, перенаправление 87, 88 вывод символов 13 вывод форматный 11, 88 вызов по назначению 6, 20, 47, 59 вызов по ссылке 6, 20, 59 вынужденное преобразование, операция 31 выравнивание, ограничения 80, 81, 85, 95, 108 выравнивание поля 85 выравнивание с помощью об'единения 103 выражение индексное 17 выражение константное 27, 39 выражение операторное 37, 38 выражение присваивания 14 выражение, тип 12 вычисления, порядок проведения 17,28,32,35,36,41,49,56,59 вычитание, операция, - 28 вычитание указателей 63 Г граничное условие 15, 42, 68 Д дата, преобразование 66, 74, 75 двоичное дерево 80 двойная кавычка, символ 9, 27 двумерный массив 66 двумерный массив, индексация 66 двумерный массив, инициализация 66 двусмысленность if-else 37 деление, операция, / 11, 28 деление по модулю, операция, % 28 деление целых 11, 28 дерево двоичное 80 длина имен 25 длина строки 27, 63 дополнение, операция, ~ 32 З завершение выполнения программы 93 зависимость от машины 29, 84, 85, 86 загрузка из стандартной библиотеки 87 загрузка программы на нескольких исходных файлах 19,44,45 запись в i-узле (i-node) 101 запятая, операция 41 зарезервированные слова 25 знак значений символов 29, 30 знаковое расширение 29, 30, 99 значение выражения отношения 30 значение логического выражения 30 значение признака конца файла EOF 14, 30, 87 значение функции getchar 30 И имена, длина 30 имя члена структуры 74 инициализация 27 инициализация автоматических переменных 22, 27, 54, 55 инициализация внешних переменных 27, 48, 50, 51, 54, 55 инициализация двумерного массива 66 инициализация массива 54, 55 инициализация массива структур 76 инициализация по умолчанию 54 инициализация регистровых переменных 54 инициализация символьного массива 54, 55 инициализация статических переменных 27, 54 инициализация структуры 74, 75 инициализация указателя 62, 79 индексация и указатели 60 индексация, начало отсчета 17, 18 индексация, пояснения 60 индексное выражение 18 инструкция #define 13, 56, 57 инструкция #define, аргументы 56, 57 инструкция #else инструкция #endif инструкция #if инструкция #ifdef инструкция #ifndef инструкция #include 56, 87, 88 инструкция #line инфиксная нотация 48 использование описаний typedef 103 К калькулятор 46, 48, 49, 91 класс памяти auto 19, 22 класс памяти extern 53 класс памяти register 53 класс памяти static 22 52, 53 ключевое слово asm ключевое слово fortran ключевые слова, программа подсчета 77 ключевое слово, список команда сс 8, 45, 87 команда ls 101 командная строка аргументов 70 комбинация символов, программа нахождения 44, 71 комментарий 10 коммутативные операции 28, 35 компиляция с-программы 8, 19 компиляция программы на нескольких файлах 19, 44 45 компиляция раздельная 6, 44, 45, 50 компиляция, управляющие строки компиляция условная 125, 126 конец строки 21, 26 конец файла 14, 30, 87 конец файла, значение EOF 14-30, 87 константа восмеричная 26 константа плавающая 10, 11 константа символическая 13, 14, 16, 56, 78 константа символьная 16, 26 константа типа double константа типа long 26 константа целая 11 константа шестнадцатиричная 26 константное выражение 26, 27, 39 конструкция else-if 18-38 копирование ввода на вывод, программа 13, 14 косвенная адресация, операция, * 58 краткое присваивание 16, 17 Л лексическая сортировка 72 лексическая область действия лексические соглашения l-значение логические операции 28 логическое выражение, значение 30 логическое "и", операция, && 17, 28, 32 логическое "или", операция, || 17, 28, 32 логическое отрицание, операция, ! 32 локальная переменная 22 М магическое число 13 макропредпроцессор 56 макрос getc 99, 100 макрос getchar 87, 88, 99 макрос isalpha 78, 94 макрос isdigit 78, 94 макрос islower 94 макрос isspace 94 макрос isupper 88, 94 макрос putc 99 макрос putchar 87, 88, 99 макрос tolower 88, 94 макрос toupper 94 макросы с аргументами 56 массив двумерный 66 массив, имя массива в качестве аргумента 6,20,47,61,66,67 массив, индексация двумерного массива 66 массив, инициализация 54, 55 массив, инициализация двумерного массива 66 массив, многомерный 66 массив, об'яснение индексации 60, 61 массив, описание 17, 18 массив, порядок расположения в памяти 66 массив, преобразование имени массива 60, 61 массив, размер по умолчанию 59, 69, 77 массив символов 20, 21, 64 массив указателей 67 массивы и указатели 60, 61, 69 массивы структур 76 масштабирование в арифметике указателей 60, 61, 63 машинная зависимость меньше или равно, операция, <= 28 меньше, операция, < 28 метка 43 многомерный массив 66 множественные файлы, компиляция 6, 19, 44, 45 модульная организация 18-23, 48, 49, 67 мультипликативные операции Н наглядное расположение текста программы 11, 15, 37, 38 научная запись 26 нахождение самой длинной строки, программа 20 начальное значение индекса массива 17, 18 незаконная арифметика указателей 63 неравенство, операция, != 14, 28 несовместимое описание типов 46, 47 неявное описание неявное описание функции 46 новая строка, символ, \n 9, 15, 16, 26 нулевой символ, \0 21, 26 нулевой указатель, null 62, 63 нуль, опущенная проверка 37, 63, 64, 65 нуль-строка 27 О область действия автоматических переменных 50, 51 область действия внешних переменных 50, 51 область действия, правила 50, 51 обозначение "е" 26 обратная косая черта, символ, \ 9, 26 обратная польская нотация 48 об'единение, выравнивание с помощью об'единения 103 об'единение, допустимые операции об'единение, ограничения 24, 85 об'единение, описание 24, 85 об'единение, ярлык (tag) обязательное описание 10, 27, 50 ограничения на об'единения 84, 85 ограничения на поля 83, 84 ограничения на регистровые переменные ограничения на структуры 75 ограничения на типы одиночная кавычка, символ 16 оператор break 39, 42 оператор continue 42 оператор do 6, 41 оператор else 17 оператор for 6, 15, 39, 40, 41 оператор go 43 оператор if 15 оператор return 19, 20, 46, 47 оператор switch 6, 18, 38, 39, 49 операторы операторы, об'единение 6, 37 операторы, последовательность выполнения операторы, признак конца 10, 11, 37, 38 операции аддитивные операции, ассоциативность 35, 36 операции арифметические 28 операции, допустимые над об'единениями операции, допустимые над структурами операции, допустимые над указателями 62, 63 операции, допустимые над функциями операции коммутативные 28, 35, 36 операции логические 28 операции мультипликативные операции отношения 14, 28 операции побитовые 32, 33 операции присваивания 28, 33, 34 операции равенства 28 операции сдвига 32, 33 операции, старшинство 14, 35, 36, 59, 76 операционная система unix 5, 6, 7, 92, 96 операционная система unix, interdata 5 операционная система unix, pdp-11 5 операционная система unix, система файлов 92,96-99,101,102 операция sizeof 78 описание extern 22, 23 описание file 92, 93 описание register 53 описание static 22, 52, 53 описание typedef 85, 86 описание typedef, использование 103 описание внешней переменной 22, 23 описание класса памяти описание массива 17, 18 описание неявное описание об'единения 24, 85 описание обязательное 10, 27, 50 описание поля 83, 84 описание, синтаксис описание структуры 74 описание типа описание указателя 58-61 описание функции описание функции, неявное 46 описания описатель описатель абстрактный описатель файла 96 определение внешнее 22, 23 определение внешней переменной 22, 23 определение данных определение функции 19, 45 опущенный спецификатор класса памяти опущенный спецификатор типа основные типы 6, 10 отладочная программа языка "Си" (lint) 6 отношения, значения выражений 30 отношения, операции 14, 28 П память, класс auto 19, 22, 45 память, класс extern 22, 23 память, класс register 53 память, класс static 22, 52, 53 память, описание класса память, порядок расположения массива 66 память, программа распределения 62, 63, 81, 83 память, программа распределения, calloc 95 параметр формальный 19, 53, 61 первичное выражение перевод типа, операция 29-31, 81, 95 переменное число аргументов 47 переменные автоматические 19, 22, 48 переменные, адрес 20, 58 переменные, внешние 22 переменные, длина имен 25 переменные, синтаксис имен 25 перемотка файла 98 перенаправление ввода/вывода 87, 92, 96 переносимость 18, 26, 29, 30, 32, 47, 65, 85-88, 99, 103 переполнение 28 плавающие типы побитовая операция включающего "или", | 32 побитовая операция "и", & 32 побитовая операция исключающего "или", ^ 32 побитовые операции 32 побочные эффекты 35, 36, 56 подчеркивание, символ 25 поиск в таблице, программа 82 поле, выравнивание 84 поле, ограничения 84 поле, описание 84 поле, ширина 84 польская нотация 48 помеченный оператор помещение на хранение 80 порядок вычислений 17, 28, 32, 35, 36, 41, 49, 56, 59 порядок вычисления выражений 32 последовательность выполнения операторов постфиксные операции ++ и -- 31, 64 поточный механизм 88, 96 по умолчанию, инициализация 54 по умолчанию, префикс default 39 по умолчанию, размер массива 55, 69, 77 правила определения области действия 50 правила преобразования типов 30 предпроцессор языка "Си" 56 преобразование double-float 30, 31 преобразование float-double 30, 46 преобразование аргументов функций 31 преобразование ввода 59, 60 преобразование ввода к нижнему регистру, программа 88 преобразование в операторе return 47 преобразование значения истинности 30 преобразование имени массива 61 преобразование переменных типа long в целые преобразование переменных типа unsigned в целые преобразование плавающих в целые 30 преобразование при присваивании 30 преобразование символов в целые 18, 29 преобразование типа, явная операция 30 преобразования указателей 81 преобразование указателей в целые 65 преобразование форматное 11 преобразование функции преобразование целых в плавающие 11 преобразование целых в символы 30 преобразование целых в указатели преобразование целых к типу long преобразование целых к типу unsigned преобразования арифметические 29 преобразования, правила 30 префиксные операции ++ и -- 31, 65 присваивание, выражение 14, 16, 34 присваивание, кратное 16 присваивание, операции 28, 33 присваивание, преобразование при присваивании 30 присваивания оператор, вложенный 14, 30 присваивание подавление, функция scanf 90 проверка в конце цикла 41 проверка в начале цикла 15, 41, 68 программа саt 91, 93 программа ср 98 программа есhо 70 программа fsize 102 программа grep 44, 102 программа lint, отладчик 6, 36, 45, 66, 86 программа, аргументы 70, 71 программа калькулятора 46, 48, 49 50, 91 программа копирования ввода на вывод 14 программа копирования файлов 14, 97 программа перевода температуры 10 программа подсчета ключевых слов 77 программа подсчета символов 15 программа подсчета символов пустых промежутков 17, 38, 39 программа подсчета слов 16 программа подсчета строк 15 программа поиска в таблице 82 программа поиска комбинации символов 44, 70, 71 программа поиска самой длинной строки 21 программа преобразования ввода к нижнему регистру 88 программа распечатки справочника 101 программа сортировки 67, 72 программа удаления хвостовых пробелов 42 программа, удобочитаемость 16, 17, 29, 40, 41, 42 программа, форма записи 11, 15, 79 производные типы 6, 10 пустой оператор 15 пустая функция 45 Р равенства операции 28 равенство, операция, == 15, 28 раздельная компиляция 6, 44, 50 размер числа 18, 15, 25, 26 расположение фигурных скобок 11 распределитель памяти 62, 81, 83 регистровые переменные, инициализация 54 режим доступа к файлу 92 режим защиты файла 97 рекурсивная структура данных 80 рекурсия 6, 55, 80, 87 С сдвига операции 32 сдвиг влево, операция, << 32 сдвиг вправо, операция, >> 32 семантика ссылок на структуру символические константы 13, 14, 16, 56, 78 символические константы, длина 13 символическое имя символ условной последовательности, \ 26 символ - целое, преобразование 18, 29 символьная строка 9, 26, 52 символьные константы 16, 26 символьные константы, восьмеричные 26 символьный массив 16, 20, 64 символьный массив, инициализация 54 символьный набор ascii 16, 26, 29, 78 символьный набор ebcdic 26, 29 символы, ввод-вывод 13 символы, знак значений символов 29 символы на вводе, подсчет количества 15 символы отрицательные символы пустых промежутков, программа подсчета 17, 38 символы, функции для анализа вида символов 94 синтаксис имен переменных синтаксис описания 27 синтаксис, сводка синтаксис ссылок на структуру синтаксическая нотация скобки фигурные 9, 11 скобки фигурные, расположение 11 слишком длинная инструкция #define 56 слова, программа подсчета 16 сложение, операция, + 27 сокрытие информации 49, 52 сортировка лексикографическая 72 сортировка по шеллу 40 сортировка, программа 67, 72 сортировка строк текста 67 сортировка численная 73 составной оператор 37, 53 спецификатор класса памяти спецификатор класса памяти, опущенный спецификатор типа спецификатор типа, опущенный спецификация преобразования %с 11 спецификация преобразования %d 11 спецификация преобразования %f 11, 15 спецификация преобразования %ld 11 спецификация преобразования %о 11 спецификация преобразования %s 11 спецификация преобразования %х 11 список ключевых слов список файлов в справочнике, программа распечатки 101 справочник 107 сравнение указателей 63 ссылающаяся на себя структура 80 стандартная библиотека 7, 59, 62, 78, 87, 96, 99 стандартная библиотека, загрузка из нее 87 стандартный ввод 87, 96 стандартный вывод 87, 96 стандартный вывод ошибок 96 старшинство операций 14, 35, 59, 76 статические переменные, внешние 52 статические переменные, внутренние 52 статические переменные, инициализация 27, 54 строка, длина 20, 21, 27 строка, признак конца 20, 27 строка, тип строка ввода, подсчет количества 15 строки текста, сортировка 67 строчная константа 9, 15, 21, 64 структура, вложенная 75 структура, имя члена 74, 75 структура, инициализация 74, 75 структура, инициализация массива структур 76, 77 структура, операция указания члена 75 структура, описание 74 структура, семантика ссылок структура, синтаксис ссылок структура, ссылающийся на себя 80 структура, указатель на структуру 79 структура, указатель на структуру, операция 76 структура, ярлык 74 структура, допустимые операции структура, массивы структур 76 структура, ограничения 75 Т табуляции символ 9 температура, программа перевода 10 терминал, ввод и вывод 13, 87, 96 тип char 10, 25 тип double 10, 15, 25 тип float 10, 25 тип int 10, 25 тип long 10, 15, 25 тип short 10, 25 типа описание типа описание, несовместимое 67 типа спецификатор типа спецификатор, отсутствующий тип выражения 12 типов имена типов несоответствие 46 типов преобразование в операторе return 46 типов преобразование, операция 30 типов преобразование, правила 30 типов преобразование, явное 30, 82 типов преобразования 29 типов проверка 6, 82 тип переменной 10 тип строки типы арифметические типы, ограничения типы основные 6, 10 типы плавающие типы производные 6, 10 типы целочисленные точка с запятой 11, 13, 15, 37, 38 У увеличение, операция, ++ 15, 31, 65 удобочитаемость программы 11,14,16,25,29,34,37,40-42,54,86 указателей арифметика 58, 60, 61, 71, 79 указателей арифметика, масштабирование 60, 61, 63 указателей арифметика, незаконная 61, 63 указателей вычитание 63 указателей инициализация 61, 79 указателей массив 60, 61, 69 указателей описание 58, 60 указателей преобразование 82 указателей преобразование в целые 65 указателей сравнение 63 указатели 6, 19 указатели, допустимые операции 62 указатели и индексы 60, 61 указатели и массивы 60, 69 указатель null 62, 63 указатель в качестве аргумента 60 указатель на символ 62 указатель на структуру 79 указатель на функцию 72, 86 указатель файла 92 уменьшение, операция 31, 65 умножение, операция, * 28 унарное выражение унарный минус, операция, - 28 условная последовательность 9, 16, 26 условная последовательность, символ, \ 9, 26 условное выражение, ?: 34 Ф файл а.out 8, 45 файл dir.h, структура справочника 101 файл stat.h 101 файл stderr 92 файл stdin 92 файл stdio.h, заголовок 87 файл stdio.h, содержание 99 файл stdout 92 файл types.h 101 файл, включение 56 файл, дескриптор 96 файл, добавление 92, 98 файл, доступ 91, 96 файл, конец файла 13, 87 файл, конкатенация 91 файл, открытие 91, 96 файл, перемотка 98 файл, программа копирования 13, 97 файл, режим доступа 92, 97 файл, режим защиты 97 файл, создание 92, 96 файл, указатель 91, 99 формальный параметр 19, 53, 61 форматное преобразование 11 форматный ввод 11, 89 форматный вывод 11, 88 функция alloc 62, 103 функция atif 46 функция atoi 29, 40 функция binary, двоичный поиск 38, 79 функция bitcount 33 функция calloc, распределитель памяти 95 функция cfree 95 функция close, обращение к системе 98 функция copy 21 функция creat, обращение к системе 97 функция day-of-year 66, 75 функция exit,-exit 93 функция fclose 93 функция fgetc 93 функция _fillbuf 100 функция fopen 91, 100 функция fprintf 92 функция fputc 93 функция free 62, 104 функция fscanf 92 функция getbits 32, 33 функция getc 92 функция getch 52 функция getchar 13, 87 функция getchar без буфера 97 функция getchar, возвращаемое значение 30 функция getchar с буфером 97 функция getint 60 функция getline 22, 45 функция getop 51 функция getword 78 функция hash 83 функция index 45 функция install 83 функция itoa 41 функция lookup 83 функция lower 29 функция lseek, обращение к системе 98 функция main 8 функция month_day 66, 76 функция month_name 69 функция morecore 104 функция numcmp 73 функция open, обращение к системе 97 функция рор 49 функция power 19, 20 функция printd 55 функция printf 9, 11, 88 функция push 49 функция putc 92 функция putchar 13, 87 функция read, обращение к системе 96 функция readlines 67 функция reverse 41 функция sbrk, обращение к системе 104 функция scanf 89 функция scanf, подавление присваивания 90 функция seek, обращение к системе 98 функция sort 40, 68, 72 функция sprintf 91 функция squeeze 31 функция sscanf 91 функция stat, обращение к системе 101 функция stat, возвращаемая структура 101 функция stat, определения 101 функция strcat 32 функция strcmp 65 функция strcpy 64 функция strlen 26 функция strsave 65 функция swap 59, 73 функция system 95 функция tree 81 функция treeprint 81 функция type 78 функция ungetc 94 функция ungetch 52 функция unlink, обращение к системе 98 функция write, обращение к системе 96 функция writelines 68 функция, аргументы 9, 19 функция, возвращаемое значение 19 функция, длина имени 25 функция, допустимые операции функция, неявное описание 46 функция, ничего не делающая 45 функция, описание функция, определение 19, 45 функция, преобразование функция, преобразование аргументов 31 функция, проверка символов 94 функция, семантика обращения функция, синтаксис обращения функция, указатель на функцию 72, 86 Х хвостовые пробелы, программа удаления 42 хеширование, таблица 82 Ц целая константа 11 целочисленные типы цикл do, идиома 40 цикл for цикл while 11 цикл бесконечный 40 цикл, проверка в конце 41 цикл, проверка в начале 15, 41, 68 Ч часть массива в качестве аргумента 61 числа, размер 10, 15, 25 численная сортировка 72 число аргументов, переменное 47 Ш шестнадцатиричная константа 26 Э эффектность 34, 43, 53, 55, 68, 78, 81, 87, 97, 104 Я явное преобразование, операция явное преобразование типа 31, 81, 95 ярлык об'единения ярлык структуры Раздел 6.1 Раздел 17.5 Раздел 20.1