Популярное

Музыка Кино и Анимация Автомобили Животные Спорт Путешествия Игры Юмор

Интересные видео

2025 Сериалы Трейлеры Новости Как сделать Видеоуроки Diy своими руками

Топ запросов

смотреть а4 schoolboy runaway турецкий сериал смотреть мультфильмы эдисон
dTub
Скачать

Практикуем мышление указателями в C (Си) • Live coding • Refactoring

Автор: Olga Pavlova

Загружено: 2025-01-24

Просмотров: 17843

Описание:

Вот указатели в C. Они есть. Хорошо, мы потерпим. Или начнём получать удовольствие?

Попробуем перейти от мышления «оперируем данными» к мышлению «оперируем указателями». Поначалу это примерно так же больно, как думать объектами. Или — для начинающих — функциями и переменными. Потом, конечно, затягивает.

Зачем думать указателями? Например, чтобы перестать думать об утечках памяти. Или о совместимости данных при вызове функции. Или избавиться от практики создания массивов для конкретного типа данных. Да-да, совсем-совсем.

Как думать указателями? А вот как раз начнём. Пощупаем что успеем за час — и не в последний раз, конечно.

Таймлайн:
00:00 – Приветствие. О чём будет лекция
00:23 – Для кого эта лекция и зачем она нужна
01:16 – Указатели как сложная тема для новичков
02:08 – Первое визуальное представление памяти
02:41 – Историческая справка об указателях
03:56 – Основные применения указателей: память и поведение
06:32 – Поведение как ключ к абстракции
07:14 – Пример с циклом по строке
08:49 – Почему поведение и данные стоит разделять
11:36 – Зачем нужны функции-обработчики (callbacks)
12:14 – Переход к указателям на функции
13:00 – Итерация как абстракция поведения
14:27 – Обёртка над `printf` через callback
16:00 – Абстрагирование цикла
17:41 – Проблема с длиной массива
19:04 – Решения: передача длины, sentinel, структура с длиной
21:04 – Создание структуры `MetaString`
25:04 – Важность хранения указателя, а не самих данных
26:02 – Создание строки и её обёртывание в `MetaString`
28:01 – MagicRun: итерация по строке с callback'ом
30:22 – Определение типа функции (callback type)
32:49 – Тестирование MagicRun
33:56 – Ошибка компиляции из-за статической строки
35:05 – Переход к динамической строке
37:33 – Успешный запуск через `strcpy`
38:16 – Удаление лишнего: использование только итератора
39:06 – Новый callback: обработка символов как чисел
41:08 – Отделение данных от поведения: суть итератора
42:43 – Комментарии к итератору и типизации функций
44:27 – Начало ООП-подхода: указатели на поведение
45:09 – Исторический контекст появления ООП и Си
46:13 – Проблема: передача структуры vs. указателя
47:41 – Передача структуры по указателю для редактирования
50:00 – Переход к работе только с указателями
52:27 – Данные в динамической памяти, без переменных
54:05 – Управление памятью: `free` и автоматизация
56:16 – Новая задача: вынести создание `MetaString` в функцию
59:09 – Реализация `create_meta_string()`
1:01:17 – Итог: как сокрытие `malloc`/`free` облегчает работу
1:02:10 – Указатели как источник новых задач
1:03:00 – Итератор: универсальный подход
1:04:07 – Итоги: типы функций, callback, метаданные
1:05:25 – Указатель-вездеход и уровни указателей
1:06:17 – Возможности указателей: библиотеки, границы кода
1:07:03 – Повседневные задачи, которые хочется упростить
1:08:32 – Где читать: книги и потоковое изучение
1:10:02 – Трудности понимания — это нормально
1:10:56 – Финальные слова: указатели как путь к абстракции

Конспект: https://github.com/olgapavlova/lectur...

Практикуем мышление указателями в C (Си) • Live coding • Refactoring

Поделиться в:

Доступные форматы для скачивания:

Скачать видео mp4

  • Информация по загрузке:

Скачать аудио mp3

Похожие видео

Как делать на C (Си) функции с произвольным количеством аргументов • Live Coding

Как делать на C (Си) функции с произвольным количеством аргументов • Live Coding

Как писать функции, применимые к разным типам данных, или Мнимый полиморфизм в C (Си)

Как писать функции, применимые к разным типам данных, или Мнимый полиморфизм в C (Си)

Смотрим на ячейки памяти через C и gdb • Live coding

Смотрим на ячейки памяти через C и gdb • Live coding

Databricks Git Integration: Building Source Controlled CI/CD Pipelines | English | #databricks

Databricks Git Integration: Building Source Controlled CI/CD Pipelines | English | #databricks

Первый модуль ядра на C и инструменты для его разглядывания • Live coding

Первый модуль ядра на C и инструменты для его разглядывания • Live coding

Что сейчас важно понимать, чтобы начать работать программистом? Вылизываю список тем для новой книги

Что сейчас важно понимать, чтобы начать работать программистом? Вылизываю список тем для новой книги

Как устроен PHP 🐘: фундаментальное знание для инженеров

Как устроен PHP 🐘: фундаментальное знание для инженеров

Как быстро собирать embedded-код и заливать его на любую dev-плату • C • Live coding

Как быстро собирать embedded-код и заливать его на любую dev-плату • C • Live coding

Что такое Rest API (http)? Soap? GraphQL? Websockets? RPC (gRPC, tRPC). Клиент - сервер. Вся теория

Что такое Rest API (http)? Soap? GraphQL? Websockets? RPC (gRPC, tRPC). Клиент - сервер. Вся теория

Приёмы использования ссылок на функции в C (Си) • Live coding

Приёмы использования ссылок на функции в C (Си) • Live coding

Бумажные книги по языку C и смежным вопросам

Бумажные книги по языку C и смежным вопросам

Вся IT-база в ОДНОМ видео: Память, Процессор, Код

Вся IT-база в ОДНОМ видео: Память, Процессор, Код

НОВЫЕ ПРАВА И СТС 2026: новый РАЗВОД ДПС, 55 000 000₽ за ржавчину, новые ловушки и знаки ПДД

НОВЫЕ ПРАВА И СТС 2026: новый РАЗВОД ДПС, 55 000 000₽ за ржавчину, новые ловушки и знаки ПДД

Основы модульного тестирования и BDD • Введение в C-фреймворк Check • Стрим, лайвкодинг

Основы модульного тестирования и BDD • Введение в C-фреймворк Check • Стрим, лайвкодинг

Как думать как программист?

Как думать как программист?

Прямо из кода влияем на кэш процессора + думаем о памяти • C • Livecoding

Прямо из кода влияем на кэш процессора + думаем о памяти • C • Livecoding

Сергей Есенин: Все версии трагической гибели поэта Серебряного века / Личности / МИНАЕВ

Сергей Есенин: Все версии трагической гибели поэта Серебряного века / Личности / МИНАЕВ

Вебинар по языку Си: :

Вебинар по языку Си: : "Заголовочные файлы .h/.c: архитектура проектов по-взрослому"

Этапы компиляции на Си: предобработка, трансляция, компоновка

Этапы компиляции на Си: предобработка, трансляция, компоновка

BLE на ESP32-S3 через NimBLE — а теперь, когда вы сломали глаза об аббревиатуры… • C • Live Coding

BLE на ESP32-S3 через NimBLE — а теперь, когда вы сломали глаза об аббревиатуры… • C • Live Coding

© 2025 dtub. Все права защищены.



  • Контакты
  • О нас
  • Политика конфиденциальности



Контакты для правообладателей: [email protected]