Из-за периодической блокировки нашего сайта РКН сервисами, просим воспользоваться резервным адресом:
Загрузить через dTub.ru Загрузить через ClipSaver.ruУ нас вы можете посмотреть бесплатно Практикуем мышление указателями в C (Си) • Live coding • Refactoring или скачать в максимальном доступном качестве, которое было загружено на ютуб. Для скачивания выберите вариант из формы ниже:
Роботам не доступно скачивание файлов. Если вы считаете что это ошибочное сообщение - попробуйте зайти на сайт через браузер google chrome или mozilla firefox. Если сообщение не исчезает - напишите о проблеме в обратную связь. Спасибо.
Если кнопки скачивания не
загрузились
НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если возникают проблемы со скачиванием, пожалуйста напишите в поддержку по адресу внизу
страницы.
Спасибо за использование сервиса savevideohd.ru
Вот указатели в 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...