Б. Керниган, Д. Ритчи
зык
программирования
И
Издание 3-е, исправленное
Перевод с английского
под редакцией Вс. С. Штаркмана
Санкт-Петербург2003
УДК 681. 3. 06
ББК 24. 4. 9
К36
Перевод с английского Вт. С. Штаркмана,
под редакцией Вс. С. Штаркмана. Керниган Б. , Ритчи Д. К36 Язык программирования СиДПер. с англ. , 3-е изд. , испр. СПб. : "Невский Диалект", 2001. - 352 с: ил. Книга широко известных авторов, разработчиков язьгка Си, переработанная
и дополненная с учетом стандарта ANSI для язьгка Си, 2-е английское издание
которой вышло в 1988 году, давно стала классикой для всех изучающих и/или
использующих как Си, так и Си++. Русский перевод этой книги впервые был
выпущен изд-вом "Финансы и статистика" в 1992 г. и с тех пор пользуется неиз-
неизменным спросом читателей. Для программистов, преподавателей и студентов. Издание подготовлено при участии издательства "Финансы и статистика"
ISBN 5-7940-0045-7 © 1998,1978Ъу Bell Telephone
ISBN 0-13-110362-8 {РВК} Laboratories, Incorporated
ISBN 0-13-110370-9 (англ. ) © "Невский Диалект", 2001 '
Оглавление
Предисловие 8
Предисловие к первому изданию 10
Введение 12
Глава 1. Обзор языка 17
1. 1. Начнем, пожалуй. 18
1. 2. Переменные и арифметические выражения 21
1. 3. Инструкция for. 21
1. 4. Именованные константы 28
1. 5. Ввод-вывод символов ' 29
1. 6. Массивы 38
1. 7. Функции 40
1. 8. Аргументы. Вызов по значению 44
1. 9. Символьные массивы . 45
1. 10. Внешние переменные и область видимости 49
Глава2. Типы, операторы и выражения 54
2. 1. Имена переменных 54
2. 2. Типы и размеры данных 55
2. 3. Константы 56
2. 4. Объявления 60
2. 5. Арифметические операторы 61
2. 6. Операторы отношения и логические операторы 62
2. 7. Преобразования типов 63
2.
8. Операторы инкремента и декремента 68
2. 9. Побитовые операторы '. 70
2. 10. Операторы и выражения присваивания 72
2. 11. Условные выражения 74
2. 12. Приоритет и очередность вычислений. 75
ГлаваЗ. Управление 78
3. 1. Инструкции и блоки , 78
3. 2. Конструкция if-else 78
3. 3. Конструкция else-if 80
3. 4. Переключатель switch 82
3. 5. Циклы while и for. 84
3. 6. Цикл do-while 88
3. 7. Инструкции break и continue . ' 90
3. 8. Инструкция goto и метки. 91
6 Оглавление
Глава 4. Функции и структура программы 93
4. 1. Основные сведения о функциях 94
4. 2. Функции, возвращающие нецелые значения 98
4. 3. Внешние переменные 101
4. 4. Области видимости '. 108
4. 5. Заголовочные файлы 110
4. 6. Статические переменные 112
4. 7. Регистровые переменные 113
4. 8. Блочная структура 114
4. 9. Инициализация 115
4. 10. Рекурсия : 116
4. 11. Препроцессор языка Си 118
Глава 5. Указатели и массивы 124
5. 1. Указатели и адреса • 124
5. 2. Указатели и аргументы функций 126
5. 3. Указатели и массивы 129
5. 4. Адресная арифметика 133
5. 5.