Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

C для программистов с введением в С11

Покупка
Артикул: 602800.02.99
Доступ онлайн
599 ₽
В корзину
В книге рассказывается о языке C и стандартной библиотеке C, следуя девизу компании Deitel: «обучение на действующих примерах». Понятия представляются в контексте тщательно протестированных программ, с выделением синтаксиса, демонстрацией вывода программ и подробного их обсуждения. Приводится примерно 5 000 строк кода на языке C и даются сотни полезных советов, которые помогут вам создавать надежные приложения. Рассматривается создание собственных структур данных и стандартная библиотека, безопасное программирование на C; описываются особенности новой ревизии стандарта С11, в т. ч. многопоточность. Закончив чтение, вы будете иметь все знания, необходимые для создания приложений на языке C промышленного уровня. Издание предназначено программистам, имеющим опыт работы на высокоуровневых языках.
Дейтел, П. C для программистов с введением в С11 : практическое руководство / П. Дейтел, Х. Дейтел ; пер. с англ. А. Н. Киселёва. - 2-е изд. - Москва : ДМК Пресс, 2023. - 545 с. - ISBN 978-5-89818-569-5. - Текст : электронный. - URL: https://znanium.com/catalog/product/2107926 (дата обращения: 28.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Пол Дейтел, Харви Дейтел

С для программистов
с введением в С11

C for Programmers
witn an Introduction in C11

Paul Deitel, Harvey Deitel

Upper Saddle River, NJ • Boston • Indianapolis • San Francisco
New York • Toronto • Montreal • London • Munich • Paris • Madrid
Capetown • Sydney • Tokyo • Singapore • Mexico City

С для программистов
с введением в С11

Москва, 2023

Пол Дейтел, Харви Дейтел

2-е издание, электронное

УДК 004.438Си(075.8)
ББК 32.973-018.1я73-1
Д27

Д27
Дейтел, Пол.
C для программистов с введением в С11 / П. Дейтел, Х. Дейтел ; пер. с англ. 
А. Н. Киселёва. — 2-е изд., эл. — 1 файл pdf : 545 с. — Москва : ДМК Пресс, 
2023. — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; 
экран 10". — Текст : электронный.
ISBN 978-5-89818-569-5

В книге рассказывается о языке C и стандартной библиотеке C, следуя девизу компании 
Deitel: «обучение на действующих примерах».
Понятия представляются в контексте тщательно протестированных программ, с выделением синтаксиса, демонстрацией вывода программ и подробного их обсуждения. Приводится примерно 5 000 строк кода на языке C и даются сотни полезных советов, которые помогут 
вам создавать надежные приложения.
Рассматривается создание собственных структур данных и стандартная библиотека, безопасное программирование на C; описываются особенности новой ревизии стандарта С11, 
в т. ч. многопоточность. Закончив чтение, вы будете иметь все знания, необходимые для 
создания приложений на языке C промышленного уровня.
Издание предназначено программистам, имеющим опыт работы на высокоуровневых языках.

УДК 004.438Си(075.8) 
ББК 32.973-018.1я73-1

Электронное издание на основе печатного издания: C для программистов с введением в С11 / П. Дейтел, Х. Дейтел ; пер. с англ. А. Н. Киселёва. — Москва : ДМК Пресс, 2016. — 544 с. — ISBN 978-5-97060-205-8. — Текст : непосредственный.

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и 
какими бы то ни было средствами без  письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все 
равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. 
В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги.

В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации.

ISBN 978-5-89818-569-5
© 2013 by Pearson Education, Inc.
© Оформление, перевод, ДМК Пресс, 2014

Памяти Дениса Ритчи (Dennis Ritchie),
создателя языка программирования C 
и соавтора операционной системы UNIX.

Пол и Харви Дейтел

Содержание

Предисловие ....................................................................................................15

1 
Введение .....................................................................................................23
1.1 Введение ..............................................................................................................24
1.2  Язык программирования C .............................................................................24
1.3  Стандартная библиотека .................................................................................26
1.4  C++ и другие C-подобные языки .................................................................27
1.5  Типичная среда разработки приложений на языке C .............................28
1.5.1  Фаза 1: создание программы ...............................................................29
1.5.2  Фазы 2 и 3: препроцессинг и компиляция программы ................30
1.5.3  Фаза 4: компоновка ................................................................................30
1.5.4  Фаза 5: загрузка .......................................................................................31
1.5.5  Фаза 6: выполнение ...............................................................................31
1.5.6  Потоки стандартного ввода, стандартного вывода 
и стандартного вывода ошибок ..........................................................31
1.6  Пробное приложение на языке C для Windows, Linux и Mac OS X ....32
1.6.1  Запуск приложения из командной строки в Windows .................33
1.6.2  Запуск приложения в Linux .................................................................36
1.6.3  Запуск приложения в Mac OS X.........................................................39
1.7  Операционные системы ..................................................................................42
1.7.1  Windows – коммерческая операционная система ..........................42
1.7.2  Linux – открытая операционная система .........................................42
1.7.3  Apple Mac OS X, Apple iOS® для устройств iPhone®, iPad® 
и iPod Touch® ...........................................................................................43
1.7.4  Google Android ........................................................................................44

2 
Введение в программирование на C ..............................45
2.1  Введение ..............................................................................................................46
2.2  Простая программа на C: вывод строки текста .........................................46
2.3  Еще одна простая программа на C: сложение двух целых чисел ..........51
2.4  Арифметические операции в языке C............................................................. 56
2.5  Принятие решений: операторы сравнения ................................................60
2.6  Безопасное программирование на C ...........................................................65

Содержание 7

3 
Управляющие инструкции: часть I ..................................67
3.1  Введение ..............................................................................................................68
3.2  Управляющие структуры ................................................................................68
3.3  Инструкция выбора if  .....................................................................................70
3.4  Инструкция выбора if...else  ............................................................................71
3.5  Инструкция повторения while  ......................................................................75
3.6  Определение средней оценки с помощью инструкции 
повторения, управляемой счетчиком ...........................................................76
3.7  Определение средней оценки с помощью инструкции 
повторения, управляемой сигнальным значением ...................................77
3.8  Вложенные управляющие инструкции ........................................................... 81
3.9  Операторы присваивания ...............................................................................84
3.10 Операторы инкремента и декремента .........................................................85
3.11 Безопасное программирование на C ...........................................................87

4 
Управляющие инструкции: часть II ................................91
4.1  Введение ..............................................................................................................92
4.2  Основы повторения..........................................................................................92
4.3  Повторение со счетчиком ..............................................................................93
4.4  Инструкция повторения for ...........................................................................95
4.5  Инструкция for: замечания .............................................................................98
4.6  Примеры использования инструкции for  .................................................99
4.7  Инструкция множественного выбора switch  ..........................................103
4.8  Инструкция повторения do…while ............................................................110
4.9  Инструкции break и continue  ......................................................................112
4.10  Логические операторы ..................................................................................114
4.11  Путаница между операторами равенства (==) и присваивания (=) .....118
4.12  Безопасное программирование на C .........................................................120

5 
Функции .................................................................................................122
5.1  Введение ............................................................................................................123
5.2  Модульное программирование на языке C ..............................................123
5.3  Функции из математической библиотеки ................................................125
5.4  Функции .............................................................................................................126
5.5  Определение функций ..................................................................................127
5.6  Прототипы функций: обсуждение деталей .............................................132
5.7  Стек вызовов функций и кадры стека ........................................................135
5.8  Заголовочные файлы .....................................................................................138
5.9  Передача аргументов по значению и по ссылке ....................................141

Содержание

5.10 Генератор случайных чисел .........................................................................141
5.11 Пример: игра в кости .....................................................................................147
5.12 Классы хранения .............................................................................................151
5.13 Правила видимости ........................................................................................153
5.14 Рекурсия .............................................................................................................157
5.15 Пример использования рекурсии: числа Фибоначчи ...........................161
5.16 Рекурсия и итерации ......................................................................................165
5.17 Безопасное программирование на C .........................................................167

6 
Массивы..................................................................................................168
6.1  Введение ............................................................................................................169
6.2  Массивы .............................................................................................................169
6.3  Определение массивов ..................................................................................171
6.4  Примеры массивов ..........................................................................................171
6.5  Передача массивов функциям .....................................................................185
6.6  Сортировка массивов .....................................................................................190
6.7  Пример: вычисление математического ожидания, медианы 
и моды ................................................................................................................193
6.8  Поиск в массивах .............................................................................................197
6.9  Многомерные массивы ..................................................................................203
6.10 Массивы переменной длины ........................................................................210
6.11 Безопасное программирование на C .........................................................213

7 
Указатели ................................................................................................216
7.1  Введение ............................................................................................................217
7.2  Переменные-указатели, определение и инициализация ......................217
7.3  Операторы указателей ...................................................................................219
7.4  Передача аргументов функциям по ссылке..............................................221
7.5  Использование квалификатора const с указателями .............................224
7.5.1 Преобразование строк в верхний регистр с использованием 
изменяемого указателя на изменяемые данные  ...........................227
7.5.2 Вывод строки по одному символу с использованием 
изменяемого указателя на константные данные ...........................228
7.5.3 Попытка изменить константный указатель на изменяемые 
данные .....................................................................................................231
7.5.4 Попытка изменить константный указатель на константные 
данные .....................................................................................................231
7.6  Пузырьковая сортировка с передачей аргументов по ссылке .............232
7.7  Оператор sizeof ...............................................................................................236
7.8  Выражения с указателями и арифметика указателей .............................238

Содержание 9

7.9  Связь между указателями и массивами.......................................................242
7.10 Массивы указателей ........................................................................................246
7.11 Пример: тасование и раздача карт ..............................................................247
7.12 Указатели на функции ...................................................................................251
7.13 Безопасное программирование на C .........................................................256

8 
Символы и строки.........................................................................258
8.1  Введение ............................................................................................................259
8.2  Основы работы со строками и символами ...............................................259
8.3  Библиотека функций для работы с символами ......................................262
8.3.1 Функции isdigit, isalpha, isalnum и isxdigit ......................................263
8.3.2 Функции islower, isupper, tolower и toupper ...................................265
8.3.3 Функции isspace, iscntrl, ispunct, isprint и isgraph .........................266
8.4  Функции преобразования строк ..................................................................268
8.4.1 Функция strtod.......................................................................................268
8.4.2 Функция strtol ........................................................................................269
8.4.3 Функция strtoul......................................................................................270
8.5  Стандартная библиотека ввода/вывода.....................................................271
8.5.1 Функции fgets и putchar ......................................................................271
8.5.2 Функция getchar ....................................................................................274
8.5.3 Функция sprintf .....................................................................................274
8.5.4 Функция sscanf ......................................................................................275
8.6  Функции для работы со строками  .............................................................276
8.6.1 Функции strcpy и strncpy ....................................................................277
8.6.2 Функции strcat и strncat ......................................................................278
8.7  Функции сравнения строк .............................................................................279
8.8  Функции поиска в строках ............................................................................281
8.8.1 Функция strchr .......................................................................................282
8.8.2 Функция strcspn ....................................................................................282
8.8.3 Функция strpbrk ....................................................................................283
8.8.4 Функция strrchr .....................................................................................283
8.8.5 Функция strspn ......................................................................................284
8.8.6 Функция strstr ........................................................................................285
8.8.7 Функция strtok .......................................................................................285
8.9  Функции для работы с памятью ..................................................................287
8.9.1 Функция memcpy ..................................................................................288
8.9.2 Функция memmove ..............................................................................288
8.9.3 Функция memcmp ................................................................................289
8.9.4 Функция memchr ..................................................................................290
8.9.5 Функция memset ...................................................................................290

Содержание

8.10 Прочие функции для работы со строками ..............................................291
8.10.1 Функция strerror ..................................................................................291
8.10.2 Функция strlen .....................................................................................292
8.11 Безопасное программирование на C  ........................................................292

9 
Форматированный ввод/вывод ...................................... 294
9.1  Введение ............................................................................................................295
9.2  Потоки данных ................................................................................................295
9.3  Форматированный вывод с помощью printf ...........................................296
9.4  Вывод целых чисел .........................................................................................296
9.5  Вывод вещественных чисел ..........................................................................298
9.6  Вывод строк и символов ...............................................................................300
9.7  Прочие спецификаторы формата ..............................................................301
9.8  Вывод с указанием ширины поля и точности .........................................302
9.9  Использование флагов в строке формата функции printf  ................305
9.10  Вывод литералов и экранированных последовательностей ................307
9.11  Чтение форматированного ввода с помощью функции scanf ..........308
9.12  Безопасное программирование на C .........................................................315

10 Структуры, объединения, перечисления 
 
и поразрядные операции .......................................................316
10.1 Введение ............................................................................................................317
10.2 Определение структур ...................................................................................318
10.2.1 Структуры со ссылками на самих себя ..........................................318
10.2.2 Определение переменных структурных типов ..........................319
10.2.3 Имена структур ...................................................................................319
10.2.4 Операции над структурами .............................................................320
10.3 Инициализация структур ..............................................................................321
10.4 Доступ к полям структур ...............................................................................321
10.5 Передача структур функциям ......................................................................323
10.6 typedef ................................................................................................................324
10.7 Пример: высокопроизводительная программа перемешивания 
и раздачи колоды карт ...................................................................................325
10.8 Объединения ....................................................................................................327
10.8.1 Объявление объединений ...............................................................328
10.8.2 Операции над объединениями .......................................................328
10.8.3 Инициализация объединений в объявлениях ............................328
10.8.4 Демонстрация объединений ...........................................................329
10.9 Поразрядные операторы ...............................................................................330
10.9.1 Вывод целых чисел без знака в двоичном представлении ......331

Доступ онлайн
599 ₽
В корзину