Адреса и указатели в Си. Адресная арифметика

Поділитися
Вставка
  • Опубліковано 12 сер 2018
  • Объявление указателя.
    Разыменование * и взятие адреса &.
    Адресная арифметика.
    Имя массив как константный адрес.
    Курс молодого бойца по информатике (Язык Си).
    cs.mipt.ru/c_intro

КОМЕНТАРІ • 226

  • @user-ho7go7sk1o
    @user-ho7go7sk1o 5 років тому +282

    Топовый препод

  • @user-ch5dh5io9m
    @user-ch5dh5io9m 4 роки тому +90

    я НИКОГДА, НИ-КО-ГДА не писал комментариев к видео, но тут, решил освежить некоторые вещи в памяти, как же жаль, что мне сразу так не объясняли, суть даже не в том, что я открыл для себя что-то новое, а просто с сожалением вспомнил процесс того, как я пару лет назад понимал это и как мне это объясняли. Приятно смотреть. Супер!

    • @nikolayshishkin6293
      @nikolayshishkin6293 10 місяців тому +2

      И нашёл отличную видео-лекцию, когда в ней уже нет нужды😆

  • @Sentinel-1
    @Sentinel-1 4 роки тому +147

    Лучшее объяснение, что я видел. Всё по существу и без лишнего словоблудия.

    • @user-iy8fl6mo5j
      @user-iy8fl6mo5j 7 місяців тому +1

      Именно, я смотрел много видео и читал многое, но везде либо вскользь говорится или много воды, а тут четко с примерами все объяснили представил, закрепил, очень благодарен

  • @sergepisarsky2038
    @sergepisarsky2038 Рік тому +10

    Оказывается можно абстрактные вещи, которыми изобилует программирование, объяснять на понятном языке. Но такой стиль, к сожалению, встретишь не часто, совсем не часто. Я после первых лекций в универе по основам программирования испытал настоящий стресс, а от этой лекции - положительные эмоции, т.к. изложенный материал не оставил пробелов в понимании. Запомнить понятный материал куда как легче, чем материал с белыми пятнами в понимании. Респект профи

  • @nik2151
    @nik2151 5 років тому +48

    После буквы Ы объяснил то, что я не встречал ни в одном учебнике.

  • @user-dw5uh2ws5m
    @user-dw5uh2ws5m 5 років тому +43

    Эх вот бы все преподы умели так доходчиво и интересно, с юмором объяснять....)

  • @kotnesobaka3080
    @kotnesobaka3080 5 років тому +49

    Жалко нельзя поставить много лайков, Спасибо Тимофей за внятное и понятное объяснение!

  • @youtubeuser4684
    @youtubeuser4684 3 роки тому +6

    Офигеть препод! Талант! Никакие курсы не нужны и универы

  • @art8fact188
    @art8fact188 4 роки тому +30

    Спасибо Вам огромное, Тимофей! Только вы корректно объяснили суть положения звёздочки. Все остальные ставят как попало без объяснения и ломают всю логику. После этого видео перемещаю Вас на моё 1е место в рейтинге преподавателей программирования )))

    • @TheCxnine
      @TheCxnine 4 роки тому

      Звездочку ставят к переменной, а не к типу, потому что кокда указатель передается в определении функции fn( int *p )он там уже пишется без типа { *p = 10; }

    • @denisd7743
      @denisd7743 3 роки тому

      @@TheCxnine так вроде мужик сказал что похер где ставить звездочку если звездочка указывает на адресный тип

    • @ufi_ded
      @ufi_ded 3 роки тому

      +++, читал кучу учеников, не мог разобраться, первое видео на ютуб и так повезло, лучший препод

  • @fontes5697
    @fontes5697 2 роки тому +7

    Как же это прекрасно, самое толковое объяснение темы из тех что видел, СПАСИБО ВАМ ОГРОМНОЕ!

  • @blackmass4925
    @blackmass4925 3 роки тому +7

    Вот это я понимаю: дистанционное образование. Преподавателю поклон.

  • @andreieliseev1516
    @andreieliseev1516 4 роки тому +8

    Тимофей Хирьянов, спасибо вам за видеоуроки, не каждому дано так доходчиво рассказывать!

  • @imlaladede1290
    @imlaladede1290 2 роки тому +1

    Вы лучший преподаватель!!!!!!!! Спасибо огромное за такое прекрасное объяснение!!!!!!!!!!!!!

  • @oleholeynikov8659
    @oleholeynikov8659 4 роки тому

    ну просто хочется обнять таких людей, преподаватель с талантом)) очень емко, понятно и на простых примерах

  • @yuriilipaiev7811
    @yuriilipaiev7811 3 роки тому +2

    Преподаватель вселенского масштаба)) Сложные вещи простым языком. Очень рад что нашел этот канал. Тимофей, спасибо Вам за труд!

  • @evgenykonovalov4870
    @evgenykonovalov4870 4 роки тому +3

    Очень очень хорошая подача материала, чувствуется реальное понимание как преподнести информацию, преподаватель обладает хорошим багажом знаний. огромное уважение!!!!!

  • @user-fh8tg4wn4e
    @user-fh8tg4wn4e 3 роки тому

    Лучшее объяснение, Ваш канал просто находка , спасибо!!!

  • @7gennews
    @7gennews Рік тому

    Все это знал, но даже тут вы смогли показать пару интересных вещей и еще лучше уложить все это в голове. Как всегда - видео лучшее на ютубе.

  • @juvusart
    @juvusart 5 років тому +16

    Спасибо! Очень круто объяснили одну из самых сложных тем в си!

  • @linkjeinson770
    @linkjeinson770 5 років тому +12

    Спасибо! Вы лучший препод в мире!)

  • @psg5_prog
    @psg5_prog 3 роки тому +2

    Спасибо вам батюшка за прекрасную лекцию про указатели.

  • @reddalailama4594
    @reddalailama4594 3 роки тому +3

    Офигеть как всё подробно и наглядно... Я в шоке. Автор прекрасный учитель. Желаю как можно больше подписчиков

  • @user-marrusia22
    @user-marrusia22 3 роки тому +4

    Как хорошо, что нашла ваш канал! Спасибо большое за видео, очень понятно:)

  • @Mani_Fast
    @Mani_Fast 2 роки тому +2

    Каждая секунда бесценна, спасибо вам

  • @alexandrponomarenko4127
    @alexandrponomarenko4127 3 роки тому

    23:32 - эта САМОЕ важное и простое объяснение, почему первый элемент всегда имеет индекс 0! Никто никогда мне не мог этого нормально объяснить, а тут... просто браво!!!

  • @McGewen
    @McGewen 4 роки тому +2

    даже просмотревь половину видео все очень прояснилось, вот это дядька, уважуха тебе! посмотрев до окнца - протсо апплодирую стоя!

  • @aef1hfqdcxaqwxxqsxqgvbnr797
    @aef1hfqdcxaqwxxqsxqgvbnr797 3 роки тому

    как раз из-за указателей вылетел в свое время из универа. Си++ был на первом курсе а асм уже на втором. Спасибо за понятно изложенный материал!

  • @bookuha
    @bookuha 3 роки тому

    Вы лучший! Сижу тут, нервно хихикаю, от того, что наконец-то осознал

  • @user-yo6no3jk9l
    @user-yo6no3jk9l 3 роки тому +12

    То неловкое чувство, когда тебе 40, а ты смотришь курс для школьников.
    Эх, в наше время таких преподов не было...

    • @tishafeed8085
      @tishafeed8085 3 роки тому +4

      никогда не поздно учиться

  • @AspireM3400
    @AspireM3400 4 роки тому

    Замечательный видеоурок, все понятно и по полочкам разжевано. С такой подаче наверно и динамические массивы будут по зубам любому тугодуму )))

  • @robertnewman8824
    @robertnewman8824 4 місяці тому

    Браво ! Лучшее объяснение !

  • @Blendershick
    @Blendershick 4 роки тому +3

    Спасибо огромное! Лучшее объяснение)

  • @mov_r16_r17
    @mov_r16_r17 4 роки тому +1

    Хорошее объяснение. Понравилось, что Тимофей подчеркнул, что * в объявлении - это не операция разыменования (мне больше нравится термин "ссылка по указателю"), а модификатор типа. Поэтому я предпочитаю объявления типа int* ip, вместо int *ip.

  • @Mitaleko
    @Mitaleko 4 місяці тому

    Как здорово, очень понятно и по существу

  • @catastrophic3709
    @catastrophic3709 6 місяців тому

    Тимофей, Вы просто лучший!

  • @Minas__Morgul
    @Minas__Morgul 3 роки тому

    Спасибо вам за ваши уроки!!!

  • @user-gs6lb5mm9w
    @user-gs6lb5mm9w 4 роки тому +1

    огромное спасибо за видео. Было много непонятного до вашего объяснения.

  • @user-ke5oz4uy3b
    @user-ke5oz4uy3b Рік тому

    Очень важный урок для меня. Спасибо вам

  • @user-fo1ro2cn6v
    @user-fo1ro2cn6v 5 років тому

    Только внимательный зритель сможет увидеть под рубашкой застегнутой под последнюю пуговицу и повышенной тональностью голоса(что дает ложное представление "типичного программиста"), хорошую осанку и четко поставленную дикцию. Спасибо Вам за этот урок, многие вещи прояснились!

    • @Video-zo5oe
      @Video-zo5oe 5 років тому

      Что значит "типичный программист"? Что все к нам прикопались, зависть берет, шаблоны ваши рвем? Завидно, да, ненавидели нас пока бухали и смотрели телевизор вместо учебы, а теперь зло берет, что нам служить приходится? Как насчёт типичного экономиста что работает таксистом, как насчёт типичного юриста что работает охранником?

  • @archiechellaut9483
    @archiechellaut9483 2 роки тому

    Большое спасибо вам за полезное видео, Тимофей!

  • @user-fh2jq5ho2v
    @user-fh2jq5ho2v 4 роки тому +3

    Блистательно объясняет!

  • @rmgear6845
    @rmgear6845 3 роки тому

    Уважаю за доходчивость объяснения

  • @UFO26
    @UFO26 4 роки тому +1

    «Любимая, я тебя поведу к самому краю Вселенной!
    Я подарю тебе эту звезду, светом нетленным будет
    она озарять нам путь в бесконечность…»*

  • @deitven9631
    @deitven9631 Рік тому

    Огромное спасибо за качественный контент!

  • @ufi_ded
    @ufi_ded 3 роки тому +1

    Шутку про пять звёздочек заценили)
    Спасибо за понятное объяснение!

  • @Gena-ku7if
    @Gena-ku7if 4 роки тому +1

    Лучшее объяснение, реально....

  • @user-yi2ng1em8x
    @user-yi2ng1em8x 2 роки тому

    Шикарно. Блестящее объяснение

  • @maxframe4415
    @maxframe4415 3 роки тому

    Мои глаза открылись... 😮. Спасибо!

  • @SunSay
    @SunSay 3 роки тому +1

    В Адресном языке программирования (1955г.) можно было ставить n звёздочек перед указателем и это имело очень большой смысл ("штрих-операция"). "Штрих-операция" (разыменование указателя) была апаратно реализована на ЭВМ "Киев" в 1955г.

  • @cat_amanita
    @cat_amanita 4 роки тому +2

    Я в восторге от этого видоса :)

  • @christferna
    @christferna 2 роки тому

    Спасибо за лекцию!

  • @VasilyMT
    @VasilyMT 2 роки тому

    Отличное лаконичное объяснение.

  • @user-yh2xz1qm5m
    @user-yh2xz1qm5m 3 роки тому

    Лучший, спасибо за лекцию

  • @Divon89
    @Divon89 5 років тому

    Отлично и внятно рассказал!

  • @ukrainianeye2545
    @ukrainianeye2545 3 роки тому

    Супер! ОГРОМНОЕ СПАСИБО!

  • @nimgvae
    @nimgvae 4 роки тому

    Шикарная подача.

  • @alexswipe4590
    @alexswipe4590 4 роки тому +1

    Здравствуйте, Тимофей! Подскажите пожалуйста по поводу указателей и строковых литералов.
    Почему при выполнении следующей программы:
    int main(int argc, char** argv) {
    char str[30] = "Hello";
    char *p;

    p = str;

    cout

    • @petrpetr9576
      @petrpetr9576 4 роки тому +1

      Потому что так работает cout. Когда ему передается указатель на char то он печатает строку. Что бы увидеть адрес - пиши cout

  • @IgorAlov
    @IgorAlov Рік тому

    На самом деле, все очень круто, но указатель, правильнее будет использовать тип void *, потому что размер ячейки под адрес в памяти будет равен, по сути разрядности процессора. Int * частный случай, который говорит о том, на какой тип данных представлен по конкретному адресу в памяти. В данном случае у вас int, но там может быть например char или вообще структура.

  • @epheymind8475
    @epheymind8475 2 роки тому

    Благодарю! отличное объяснение

  • @ViktorRy2
    @ViktorRy2 2 роки тому

    На 21:10 в выражении A[i] = *(A + i) какого типа должна быть переменная i? Если она типа char/short/int, то в правой части выражения перед сложением будет осуществлено её приведение до типа int*?

  • @user-yo6no3jk9l
    @user-yo6no3jk9l 3 роки тому

    Я бы посоветовал Тимофею попреподавать ассемблер на микроконтроллерах AVR. Они очень простые в изучении, там все эти адреса можно прописывать вручную и очень хорошо разобраться.

  • @sergeypyatkovskiy1808
    @sergeypyatkovskiy1808 5 років тому +3

    Отличное видео

  • @user-ub7cq8xk6h
    @user-ub7cq8xk6h 3 роки тому

    Огромное спасибо за видео

  • @Vovchirshtain
    @Vovchirshtain Рік тому

    Просто лучший 👍💯

  • @jimshtepa5423
    @jimshtepa5423 2 роки тому

    в 20:20 производится разыменование А, получается разыменование можно выполнить не только указателя, но и массива или переменных любого типа, даже примитвов?

  • @artemmelnikov7646
    @artemmelnikov7646 2 роки тому

    Очень понятно, спасибо большое

  • @Video-zo5oe
    @Video-zo5oe 5 років тому +1

    Хороший урок спасибо

  • @user-sr9nq9ei3l
    @user-sr9nq9ei3l 4 роки тому

    Вообще мощно . Адреса это бомба

  • @alltheworldsastage.11688
    @alltheworldsastage.11688 3 роки тому

    Спасибо 🙏

  • @user-bs1ck6sc3s
    @user-bs1ck6sc3s Рік тому

    Спасибо! Супер!

  • @hannahr5037
    @hannahr5037 4 роки тому +1

    Тимофей,
    Спасибо!

  • @arturssitdikovs4480
    @arturssitdikovs4480 5 років тому +1

    Очень понятно. Спасибо!!!

  • @dead_inside_ggyaafk
    @dead_inside_ggyaafk 4 роки тому +1

    Спасибо

  • @ammonjerro396
    @ammonjerro396 Рік тому +1

    Хорошее объяснение. Я даже понял как работает. Вопрос - а зачем нужны все эти ссылки и указатели и почему напрямую не обратиться к переменной?

  • @vitalic853
    @vitalic853 Рік тому

    Однозначно лайк, спасибо

  • @idi_poesh
    @idi_poesh 3 роки тому

    всё очень понятно, спасибо

  • @dmitrycaiman5952
    @dmitrycaiman5952 2 місяці тому

    Спасибо!

  • @forsink7289
    @forsink7289 6 місяців тому

    Спасибо большое

  • @andreyk.7657
    @andreyk.7657 4 роки тому

    Спасибо.

  • @Krotonyasha
    @Krotonyasha Рік тому

    Топовое объяснение!

  • @beehummingbird4744
    @beehummingbird4744 Рік тому

    Запихал его туда . топовый преподаватель . 😁😁😁 .

  • @EdenLollys
    @EdenLollys Рік тому

    спасибо большое

  • @sergeykorobkov9080
    @sergeykorobkov9080 3 роки тому

    очень доходчиво,

  • @Video-zo5oe
    @Video-zo5oe 5 років тому +2

    Распечатаю 🙂

  • @billlanc9461
    @billlanc9461 Рік тому

    Идеальное пояснение

  • @Ma_X64
    @Ma_X64 4 роки тому

    Прикольно было бы разложить по элементам массива их собственные адреса.

  • @wizard_still
    @wizard_still 4 роки тому

    действительно понятно, еще бы про флаги такое найти

  • @user-gl2ll5mk7s
    @user-gl2ll5mk7s 4 роки тому +1

    ты мега крут )))

  • @Alexcei64rus
    @Alexcei64rus 4 роки тому +57

    Кто из 21?

    • @dmarsell
      @dmarsell 4 роки тому +2

      )))

    • @segameserver
      @segameserver 4 роки тому

      Согласен, тема тяжелая.))

    • @blackmass4925
      @blackmass4925 3 роки тому +1

      Alexcei64rus Из 2021-го года?

    • @Alexcei64rus
      @Alexcei64rus 3 роки тому +1

      @@blackmass4925 школы 21

    • @user-dh4zm7tq1y
      @user-dh4zm7tq1y 3 роки тому

      ну мне 21, так что я тоже в каком-то смысле из 21

  • @syrengoogle
    @syrengoogle Рік тому

    просто топ!

  • @1nfoGames
    @1nfoGames 3 роки тому

    Ваааа, класс, наконец я понял

  • @user-lt5xs9iy6i
    @user-lt5xs9iy6i 2 роки тому +1

    Ого, круто, можно делать переменные с адресами переменных который сами лежат на каком то адресе и его тоже можно записать в переменную.
    А можно вопрос? Зачем это надо и где используется.
    Чувствуешь себя как на уроке, когда час объясняли что-то сложное, а зачем оно нужно так и не сказали

  • @rnd3205
    @rnd3205 3 роки тому

    Класс!!!

  • @DodgerEcho
    @DodgerEcho Рік тому +1

    У меня один вопрос, зачем это надо, там где две звёздочки, три, ведь можно сделать простым способом например через присвоение переменной i другого значения, ну или хотя бы через *pi = ... Зачем остальные сложности?

  • @KrassRome
    @KrassRome Рік тому

    да - Вот дом, который построил Джек... Но все равно классно и доходчиво.

  • @ProninART89
    @ProninART89 Рік тому

    Смотрел год назад, вообще ничего не понял. Посмотрел сегодня - понял всё))

  • @user-vw6rf7op6x
    @user-vw6rf7op6x 5 років тому +1

    Спасибо большое за уроки, объясняете всё очень доходчиво.
    Только не совсем понятен смысл употребление указателей.
    В данном примере, можно было без и указателя присвоить переменной значение

    • @user-bj6kn4yo6k
      @user-bj6kn4yo6k 4 роки тому +3

      Миха Сёмин используются при передачи параметров в функцию по указателю, при выделении динамической памяти (с помощью библиотечных функций malloc и т.д) например для создания динамического массива, при разработке прочих динамических структур данных (списки, деревья и прочие), при создании массивов указателей на функции и т.д.

  • @user-yj9he7eh3l
    @user-yj9he7eh3l 4 роки тому

    в натуре чётко

  • @user-oj4dd7cz5u
    @user-oj4dd7cz5u 4 роки тому +1

    от бога препод

  • @evgenykonovalov4870
    @evgenykonovalov4870 4 роки тому

    как еще 1н лайк поставить просто топ видео