C для программистов с введением в С11
Покупка
Тематика:
Программирование на C и C++
Издательство:
ДМК Пресс
Перевод:
Киселев Артём Николаевич
Год издания: 2023
Кол-во страниц: 545
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное образование
ISBN: 978-5-89818-569-5
Артикул: 602800.02.99
В книге рассказывается о языке C и стандартной библиотеке C, следуя девизу компании Deitel: «обучение на действующих примерах».
Понятия представляются в контексте тщательно протестированных программ, с выделением синтаксиса, демонстрацией вывода программ и подробного их обсуждения. Приводится примерно 5 000 строк кода на языке C и даются сотни полезных советов, которые помогут вам создавать надежные приложения.
Рассматривается создание собственных структур данных и стандартная библиотека, безопасное программирование на C; описываются особенности новой ревизии стандарта С11, в т. ч. многопоточность. Закончив чтение, вы будете иметь все знания, необходимые для создания приложений на языке C промышленного уровня.
Издание предназначено программистам, имеющим опыт работы на высокоуровневых языках.
- Полная коллекция по информатике и вычислительной технике
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Программирование
- Программирование на C и C++
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Пол Дейтел, Харви Дейтел С для программистов с введением в С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