Язык С, Самое необходимое, Прохоренок Н.А., 2020.
Описан базовый синтаксис современного языка С: типы данных, операторы, условия, циклы, работа с числами, строками, массивами и указателями, создание пользовательских функций, модулей, статических и динамических библиотек. Рассмотрены основные функции стандартной библиотеки языка С, а также функции, применяемые только в операционной системе Windows. Для написания, компиляции и запуска программ используется редактор Eclipse, а для создания исполняемого файла— компилятор gcc.exe версии 8.2, входящий в состав популярной библиотеки MinGW-W64. Книга содержит большое количество практических примеров, помогающих начать программировать на языке С самостоятельно. Весь материал тщательно подобран, хорошо структурирован и компактно изложен, что позволяет использовать книгу как удобный справочник. Электронный архив с примерами находится на сайте издательства.

Области видимости переменных.
Прежде чем использовать переменную, ее необходимо предварительно объявить. До объявления переменной она не видна в программе. Объявить переменную можно глобально (вне функций) или локально (внутри функции или блока).
Глобальные переменные— это переменные, объявленные в программе вне функций. Глобальные переменные видны в любой части программы, включая функции. Инициализация таких переменных производится только один раз. Если при объявлении переменной не было присвоено начальное значение, то производится автоматическая инициализация нулевым значением.
Локальные переменные — это переменные, которые объявлены внутри функции или блока (области, ограниченной фигурными скобками). Локальные переменные видны только внутри функции или блока. Инициализация таких переменных производится при каждом вызове функции или входе в блок. После выхода из функции или блока локальная переменная уничтожается. Если при объявлении переменной не было присвоено начальное значение, то переменная будет содержать произвольное значение, так называемый "мусор". Исключением являются статические локальные переменные, которым автоматически присваивается нулевое значение и которые сохраняют значение при выходе из функции.
ОГЛАВЛЕНИЕ.
Введение.
Глава 1. Установка программ под Windows.
1.1. Создание структуры каталогов.
1.2. Добавление пути в переменную РАТН.
1.3. Работа с командной строкой.
1.4. Установка MinGW и MSYS.
1.5. Установка MinGW-W64.
1.6. Установка MSYS2 и MinGW-W64.
1.7. Установка и настройка редактора Eclipse.
1.8. Создание проектов в редакторе Eclipse.
Глава 2. Первые шаги.
2.1. Первая программа.
2.2. Создание пустого проекта в редакторе Eclipse.
2.3. Добавление в проект файла с программой.
2.4. Добавление в проект заголовочного файла.
2.5. Компиляция и запуск программы в редакторе Eclipse.
2.6. Структура программы.
2.7. Комментарии в программе.
2.8. Вывод данных.
2.9. Ввод данных.
2.9.1. Ввод одного символа.
2.9.2. Функция scanf().
2.9.3. Ввод строки.
2.10. Интерактивный ввод символов.
2.11. Получение данных из командной строки.
2.12. Предотвращение закрытия окна консоли.
2.13. Настройка отображения русских букв в консоли.
2.14. Преждевременное завершение выполнения программы.
Глава 3. Переменные и типы данных.
3.1. Объявление переменной.
3.2. Именование переменных.
3.3. Типы данных.
3.4. Целочисленные типы фиксированного размера.
3.5. Оператор sizeof и тип size_t.
3.6. Инициализация переменных.
3.7. Оператор typede.f.
3.8. Константы.
3.9. Спецификаторы хранения.
3.10. Области видимости переменных.
3.11. Массивы.
3.12. Строки.
3.13. Указатели.
3.14. Динамическое выделение памяти.
3.14.1. Функции malloc() и free().
3.14.2. Функция саllос().
3.14.3. Функция realloc().
3.15. Структуры.
3.16. Битовые поля.
3.17. Объединения.
3.18. Перечисления.
3.19. Приведение типов.
Глава 4. Операторы и циклы.
4.1. Математические операторы.
4.2. Побитовые операторы.
4.3. Операторы присваивания.
4.4. Оператор запятая.
4.5. Операторы сравнения.
4.6. Приоритет выполнения операторов.
4.7. Оператор ветвления if.
4.8. Оператор?:.
4.9. Оператор выбора switch.
4.10. Цикл fоr.
4.11. Цикл while.
4.12. Цикл do. while.
4.13. Оператор continue: переход на следующую итерацию цикла.
4.14. Оператор break: прерывание цикла.
4.15. Оператор goto.
Глава 5. Числа.
5.1. Математические константы.
5.2. Основные функции для работы с числами.
5.3. Округление чисел.
5.4. Тригонометрические функции.
5.5. Преобразование строки в число.
5.6. Преобразование числа в строку.
5.7. Генерация псевдослучайных чисел.
5.8. Бесконечность и значение NAN.
Глава 6. Массивы.
6. 1. Объявление и инициализация массива.
6.2. Определение количества элементов и размера массива.
6.3. Получение и изменение значения элемента массива.
6.4. Перебор элементов массива.
6.5. Доступ к элементам массива с помощью указателя.
6.6. Массивы указателей.
6.7. Динамические массивы.
6.8. Многомерные массивы.
6.9. Поиск минимального и максимального значений.
6.10. Сортировка массива.
6.11. Проверка наличия значения в массиве.
6.12. Копирование элементов из одного массива в другой.
6.13. Сравнение массивов.
6.14. Переворачивание массива.
Глава 7. Символы и С-строки.
7.1. Объявление и инициализация отдельного символа.
7.2. Настройка локали.
7.3. Изменение регистра символов.
7.4. Проверка типа содержимого символа.
7.5. Объявление и инициализация С-строки.
7.6. Доступ к символам внутри С-строки.
7.7. Определение длины строки.
7.8. Перебор символов С-строки.
7.9. Основные функции для работы с С-строками.
7.10. Поиск и замена в С-строке.
7.11. Сравнение С-строк.
7.12. Форматирование С-строк.
Глава 8. Широкие символы и L-строки.
8.1. Объявление и инициализация широкого символа.
8.2. Вывод и ввод широких символов.
8.3. Изменение регистра символов.
8.4. Проверка типа содержимого широкого символа.
8.5. Преобразование широких символов в обычные и наоборот.
8.6. Объявление и инициализация L-строки.
8.7. Доступ к символам внутри L-строки.
8.8. Определение длины L-строки.
8.9. Перебор символов L-строки.
8.10. Вывод и ввод L-строк.
8.11. Преобразование С-строки в L-строку и наоборот.
8.12. Преобразование кодировок.
8.13. Основные функции для работы с L-строками.
8.14. Поиск и замена в L-строке.
8.15. Сравнение L-строк.
8.16. Преобразование L-строки в число.
8.17. Преобразование числа в L-строку.
8.18. Типы char16_t и char32_t.
Глава 9. Работа с датой и временем.
9.1. Получение текущей даты и времени.
9.2. Форматирование даты и времени.
9.3. «Засыпание» программы.
9.4. Измерение времени выполнения фрагментов кода.
Глава 10. Пользовательские функции.
10.1. Создание функции и ее вызов.
10.2. Расположение объявлений и определений функций.
10.3. Способы передачи параметров в функцию.
10.4. Передача массивов и строк в функцию.
10.5. Переменное количество параметров.
10.6. Константные параметры.
10.7. Статические переменные и функции.
10.8. Способы возврата значения из функции.
10.9. Указатели на функции.
10.1 О. Передача в функцию и возврат данных произвольного типа.
10.11. Рекурсия.
10.12. Встраиваемые функции.
Глава 11. Обработка ошибок.
11.1. Типы ошибок.
11.2. Предупреждающие сообщения при компиляции.
11.3. Переменная errno и вывод сообщения об ошибке.
11.4. Способы поиска ошибок в программе.
11.5. Отладка программы в редакторе Eclipse.
Глава 12. Чтение и запись файлов.
12.1. Открытие и закрытие файла.
12.2. Указание пути к файлу.
12.3. Режимы открытия файла.
12.4. Запись в файл.
12.5. Чтение из файла.
12.6. Чтение и запись двоичных файлов.
12.7. Файлы произвольного доступа.
12.8. Создание временных файлов.
12.9. Перенаправление ввода/вывода.
12.10. Работа с буфером ввода и вывода.
Глава 13. Низкоуровневые потоки ввода и вывода.
13.1. Открытие и закрытие файла.
13.2. Чтение из файла и запись в файл.
13.3. Файлы произвольного доступа.
13.4. Создание временных файлов.
13.5. Дескрипторы потоков ввода/вывода.
13.6. Преобразование низкоуровневого потока в обычный.
13.7. Создание копии потока.
13.8. Перенаправление потоков.
Глава 14. Работа с файловой системой.
14.1. Преобразование пути к файлу или каталогу.
14.2. Переименование, перемещение и удаление файла.
14.3. Проверка прав доступа к файлу и каталогу.
14.4. Изменение прав доступа к файлу.
14.5. Делаем файл скрытым.
14.6. Получение информации о файле.
14.7. Функции для работы с дисками.
14.8. Функции для работы с каталогами.
14.9. Перебор объектов, расположенных в каталоге.
Глава 15. Потоки и процессы.
15.1. Потоки в WinAPI.
15.1.1. Создание и завершение потока.
15.1.2. Синхронизация потоков.
15.2. Функции для работы с потоками, объявленные в файле process.h.
15.3. Потоки POSIX.
15.3.1. Создание и завершение потока.
15.3.2. Синхронизация потоков.
15.4. Запуск процессов.
15.5. Получение идентификатора процесса.
Глава 16. Создание библиотек.
16.1. Статические библиотеки.
16.1.1. Создание статической библиотеки из командной строки.
16.1.2. Создание статической библиотеки в редакторе Eclipse.
16.2. Динамические библиотеки.
16.2.1. Создание динамической библиотеки из командной строки.
16.2.2. Создание динамической библиотеки в редакторе Eclipse.
16.2.3. Загрузка динамической библиотеки во время выполнения программы.
16.2.4. Экспортируемые и внутренние функции.
16.2.5. Функция DllMain().
Глава 17. Прочее.
17.1. Регистрация функции, выполняемой при завершении программы.
17.2, Выполнение системных команд.
17.3. Получение и изменение значений системных переменных.
17.4. Директивы препроцессора.
17.5. Создание значка приложения.
Заключение.
Приложение. Описание электронного архива.
Предметный указатель.
Купить .
Теги: учебник по программированию :: программирование :: Прохоренок








