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

  Рет қаралды 158,887

Тимофей Хирьянов

Тимофей Хирьянов

5 жыл бұрын

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

Пікірлер: 226
@user-ho7go7sk1o
@user-ho7go7sk1o 5 жыл бұрын
Топовый препод
@evgeniygazetdinov1620
@evgeniygazetdinov1620 4 жыл бұрын
бог
@verbof2527
@verbof2527 2 жыл бұрын
Действительно толково объясняет
@user-lx7nj3we6v
@user-lx7nj3we6v Жыл бұрын
@@evgeniygazetdinov1620 это щ енот
@user-ch5dh5io9m
@user-ch5dh5io9m 4 жыл бұрын
я НИКОГДА, НИ-КО-ГДА не писал комментариев к видео, но тут, решил освежить некоторые вещи в памяти, как же жаль, что мне сразу так не объясняли, суть даже не в том, что я открыл для себя что-то новое, а просто с сожалением вспомнил процесс того, как я пару лет назад понимал это и как мне это объясняли. Приятно смотреть. Супер!
@nikolayshishkin6293
@nikolayshishkin6293 10 ай бұрын
И нашёл отличную видео-лекцию, когда в ней уже нет нужды😆
@Sentinel-1
@Sentinel-1 4 жыл бұрын
Лучшее объяснение, что я видел. Всё по существу и без лишнего словоблудия.
@user-iy8fl6mo5j
@user-iy8fl6mo5j 7 ай бұрын
Именно, я смотрел много видео и читал многое, но везде либо вскользь говорится или много воды, а тут четко с примерами все объяснили представил, закрепил, очень благодарен
@sergepisarsky2038
@sergepisarsky2038 Жыл бұрын
Оказывается можно абстрактные вещи, которыми изобилует программирование, объяснять на понятном языке. Но такой стиль, к сожалению, встретишь не часто, совсем не часто. Я после первых лекций в универе по основам программирования испытал настоящий стресс, а от этой лекции - положительные эмоции, т.к. изложенный материал не оставил пробелов в понимании. Запомнить понятный материал куда как легче, чем материал с белыми пятнами в понимании. Респект профи
@nik2151
@nik2151 5 жыл бұрын
После буквы Ы объяснил то, что я не встречал ни в одном учебнике.
@user-dw5uh2ws5m
@user-dw5uh2ws5m 5 жыл бұрын
Эх вот бы все преподы умели так доходчиво и интересно, с юмором объяснять....)
@kotnesobaka3080
@kotnesobaka3080 5 жыл бұрын
Жалко нельзя поставить много лайков, Спасибо Тимофей за внятное и понятное объяснение!
@youtubeuser4684
@youtubeuser4684 3 жыл бұрын
Офигеть препод! Талант! Никакие курсы не нужны и универы
@art8fact188
@art8fact188 4 жыл бұрын
Спасибо Вам огромное, Тимофей! Только вы корректно объяснили суть положения звёздочки. Все остальные ставят как попало без объяснения и ломают всю логику. После этого видео перемещаю Вас на моё 1е место в рейтинге преподавателей программирования )))
@TheCxnine
@TheCxnine 4 жыл бұрын
Звездочку ставят к переменной, а не к типу, потому что кокда указатель передается в определении функции fn( int *p )он там уже пишется без типа { *p = 10; }
@denisd7743
@denisd7743 3 жыл бұрын
@@TheCxnine так вроде мужик сказал что похер где ставить звездочку если звездочка указывает на адресный тип
@ufi_ded
@ufi_ded 3 жыл бұрын
+++, читал кучу учеников, не мог разобраться, первое видео на ютуб и так повезло, лучший препод
@blackmass4925
@blackmass4925 3 жыл бұрын
Вот это я понимаю: дистанционное образование. Преподавателю поклон.
@andreieliseev1516
@andreieliseev1516 4 жыл бұрын
Тимофей Хирьянов, спасибо вам за видеоуроки, не каждому дано так доходчиво рассказывать!
@fontes5697
@fontes5697 2 жыл бұрын
Как же это прекрасно, самое толковое объяснение темы из тех что видел, СПАСИБО ВАМ ОГРОМНОЕ!
@juvusart
@juvusart 5 жыл бұрын
Спасибо! Очень круто объяснили одну из самых сложных тем в си!
@oleholeynikov8659
@oleholeynikov8659 4 жыл бұрын
ну просто хочется обнять таких людей, преподаватель с талантом)) очень емко, понятно и на простых примерах
@linkjeinson770
@linkjeinson770 5 жыл бұрын
Спасибо! Вы лучший препод в мире!)
@yuriilipaiev7811
@yuriilipaiev7811 3 жыл бұрын
Преподаватель вселенского масштаба)) Сложные вещи простым языком. Очень рад что нашел этот канал. Тимофей, спасибо Вам за труд!
@evgenykonovalov4870
@evgenykonovalov4870 4 жыл бұрын
Очень очень хорошая подача материала, чувствуется реальное понимание как преподнести информацию, преподаватель обладает хорошим багажом знаний. огромное уважение!!!!!
@7gennews
@7gennews Жыл бұрын
Все это знал, но даже тут вы смогли показать пару интересных вещей и еще лучше уложить все это в голове. Как всегда - видео лучшее на ютубе.
@psg5_prog
@psg5_prog 3 жыл бұрын
Спасибо вам батюшка за прекрасную лекцию про указатели.
@user-fh8tg4wn4e
@user-fh8tg4wn4e 3 жыл бұрын
Лучшее объяснение, Ваш канал просто находка , спасибо!!!
@imlaladede1290
@imlaladede1290 2 жыл бұрын
Вы лучший преподаватель!!!!!!!! Спасибо огромное за такое прекрасное объяснение!!!!!!!!!!!!!
@reddalailama4594
@reddalailama4594 3 жыл бұрын
Офигеть как всё подробно и наглядно... Я в шоке. Автор прекрасный учитель. Желаю как можно больше подписчиков
@Mani_Fast
@Mani_Fast 2 жыл бұрын
Каждая секунда бесценна, спасибо вам
@user-marrusia22
@user-marrusia22 3 жыл бұрын
Как хорошо, что нашла ваш канал! Спасибо большое за видео, очень понятно:)
@aef1hfqdcxaqwxxqsxqgvbnr797
@aef1hfqdcxaqwxxqsxqgvbnr797 3 жыл бұрын
как раз из-за указателей вылетел в свое время из универа. Си++ был на первом курсе а асм уже на втором. Спасибо за понятно изложенный материал!
@McGewen
@McGewen 4 жыл бұрын
даже просмотревь половину видео все очень прояснилось, вот это дядька, уважуха тебе! посмотрев до окнца - протсо апплодирую стоя!
@bookuha
@bookuha 3 жыл бұрын
Вы лучший! Сижу тут, нервно хихикаю, от того, что наконец-то осознал
@alexandrponomarenko4127
@alexandrponomarenko4127 3 жыл бұрын
23:32 - эта САМОЕ важное и простое объяснение, почему первый элемент всегда имеет индекс 0! Никто никогда мне не мог этого нормально объяснить, а тут... просто браво!!!
@Blendershick
@Blendershick 4 жыл бұрын
Спасибо огромное! Лучшее объяснение)
@user-yo6no3jk9l
@user-yo6no3jk9l 3 жыл бұрын
То неловкое чувство, когда тебе 40, а ты смотришь курс для школьников. Эх, в наше время таких преподов не было...
@tishafeed8085
@tishafeed8085 3 жыл бұрын
никогда не поздно учиться
@AspireM3400
@AspireM3400 4 жыл бұрын
Замечательный видеоурок, все понятно и по полочкам разжевано. С такой подаче наверно и динамические массивы будут по зубам любому тугодуму )))
@mov_r16_r17
@mov_r16_r17 4 жыл бұрын
Хорошее объяснение. Понравилось, что Тимофей подчеркнул, что * в объявлении - это не операция разыменования (мне больше нравится термин "ссылка по указателю"), а модификатор типа. Поэтому я предпочитаю объявления типа int* ip, вместо int *ip.
@user-fh2jq5ho2v
@user-fh2jq5ho2v 4 жыл бұрын
Блистательно объясняет!
@archiechellaut9483
@archiechellaut9483 2 жыл бұрын
Большое спасибо вам за полезное видео, Тимофей!
@user-gs6lb5mm9w
@user-gs6lb5mm9w 4 жыл бұрын
огромное спасибо за видео. Было много непонятного до вашего объяснения.
@deitven9631
@deitven9631 Жыл бұрын
Огромное спасибо за качественный контент!
@robertnewman8824
@robertnewman8824 4 ай бұрын
Браво ! Лучшее объяснение !
@Minas__Morgul
@Minas__Morgul 3 жыл бұрын
Спасибо вам за ваши уроки!!!
@rmgear6845
@rmgear6845 3 жыл бұрын
Уважаю за доходчивость объяснения
@user-ke5oz4uy3b
@user-ke5oz4uy3b 11 ай бұрын
Очень важный урок для меня. Спасибо вам
@user-fo1ro2cn6v
@user-fo1ro2cn6v 5 жыл бұрын
Только внимательный зритель сможет увидеть под рубашкой застегнутой под последнюю пуговицу и повышенной тональностью голоса(что дает ложное представление "типичного программиста"), хорошую осанку и четко поставленную дикцию. Спасибо Вам за этот урок, многие вещи прояснились!
@Video-zo5oe
@Video-zo5oe 5 жыл бұрын
Что значит "типичный программист"? Что все к нам прикопались, зависть берет, шаблоны ваши рвем? Завидно, да, ненавидели нас пока бухали и смотрели телевизор вместо учебы, а теперь зло берет, что нам служить приходится? Как насчёт типичного экономиста что работает таксистом, как насчёт типичного юриста что работает охранником?
@ufi_ded
@ufi_ded 3 жыл бұрын
Шутку про пять звёздочек заценили) Спасибо за понятное объяснение!
@Mitaleko
@Mitaleko 4 ай бұрын
Как здорово, очень понятно и по существу
@maxframe4415
@maxframe4415 3 жыл бұрын
Мои глаза открылись... 😮. Спасибо!
@user-yi2ng1em8x
@user-yi2ng1em8x 2 жыл бұрын
Шикарно. Блестящее объяснение
@Gena-ku7if
@Gena-ku7if 4 жыл бұрын
Лучшее объяснение, реально....
@cat_amanita
@cat_amanita 4 жыл бұрын
Я в восторге от этого видоса :)
@Divon89
@Divon89 5 жыл бұрын
Отлично и внятно рассказал!
@user-yh2xz1qm5m
@user-yh2xz1qm5m 3 жыл бұрын
Лучший, спасибо за лекцию
@ukrainianeye2545
@ukrainianeye2545 3 жыл бұрын
Супер! ОГРОМНОЕ СПАСИБО!
@catastrophic3709
@catastrophic3709 6 ай бұрын
Тимофей, Вы просто лучший!
@epheymind8475
@epheymind8475 2 жыл бұрын
Благодарю! отличное объяснение
@VasilyMT
@VasilyMT 2 жыл бұрын
Отличное лаконичное объяснение.
@arturssitdikovs4480
@arturssitdikovs4480 5 жыл бұрын
Очень понятно. Спасибо!!!
@christferna
@christferna 2 жыл бұрын
Спасибо за лекцию!
@user-yo6no3jk9l
@user-yo6no3jk9l 3 жыл бұрын
Я бы посоветовал Тимофею попреподавать ассемблер на микроконтроллерах AVR. Они очень простые в изучении, там все эти адреса можно прописывать вручную и очень хорошо разобраться.
@IgorAlov
@IgorAlov Жыл бұрын
На самом деле, все очень круто, но указатель, правильнее будет использовать тип void *, потому что размер ячейки под адрес в памяти будет равен, по сути разрядности процессора. Int * частный случай, который говорит о том, на какой тип данных представлен по конкретному адресу в памяти. В данном случае у вас int, но там может быть например char или вообще структура.
@sergeypyatkovskiy1808
@sergeypyatkovskiy1808 5 жыл бұрын
Отличное видео
@ammonjerro396
@ammonjerro396 Жыл бұрын
Хорошее объяснение. Я даже понял как работает. Вопрос - а зачем нужны все эти ссылки и указатели и почему напрямую не обратиться к переменной?
@SunSay
@SunSay 3 жыл бұрын
В Адресном языке программирования (1955г.) можно было ставить n звёздочек перед указателем и это имело очень большой смысл ("штрих-операция"). "Штрих-операция" (разыменование указателя) была апаратно реализована на ЭВМ "Киев" в 1955г.
@user-ub7cq8xk6h
@user-ub7cq8xk6h 3 жыл бұрын
Огромное спасибо за видео
@nimgvae
@nimgvae 3 жыл бұрын
Шикарная подача.
@user-sr9nq9ei3l
@user-sr9nq9ei3l 4 жыл бұрын
Вообще мощно . Адреса это бомба
@artemmelnikov7646
@artemmelnikov7646 2 жыл бұрын
Очень понятно, спасибо большое
@Video-zo5oe
@Video-zo5oe 5 жыл бұрын
Хороший урок спасибо
@UFO26
@UFO26 4 жыл бұрын
«Любимая, я тебя поведу к самому краю Вселенной! Я подарю тебе эту звезду, светом нетленным будет она озарять нам путь в бесконечность…»*
@hannahr5037
@hannahr5037 4 жыл бұрын
Тимофей, Спасибо!
@Vovchirshtain
@Vovchirshtain Жыл бұрын
Просто лучший 👍💯
@vitalic853
@vitalic853 Жыл бұрын
Однозначно лайк, спасибо
@idi_poesh
@idi_poesh 3 жыл бұрын
всё очень понятно, спасибо
@Krotonyasha
@Krotonyasha Жыл бұрын
Топовое объяснение!
@user-bs1ck6sc3s
@user-bs1ck6sc3s Жыл бұрын
Спасибо! Супер!
@user-lt5xs9iy6i
@user-lt5xs9iy6i 2 жыл бұрын
Ого, круто, можно делать переменные с адресами переменных который сами лежат на каком то адресе и его тоже можно записать в переменную. А можно вопрос? Зачем это надо и где используется. Чувствуешь себя как на уроке, когда час объясняли что-то сложное, а зачем оно нужно так и не сказали
@alexswipe4590
@alexswipe4590 4 жыл бұрын
Здравствуйте, Тимофей! Подскажите пожалуйста по поводу указателей и строковых литералов. Почему при выполнении следующей программы: int main(int argc, char** argv) { char str[30] = "Hello"; char *p; p = str; cout
@petrpetr9576
@petrpetr9576 4 жыл бұрын
Потому что так работает cout. Когда ему передается указатель на char то он печатает строку. Что бы увидеть адрес - пиши cout
@beehummingbird4744
@beehummingbird4744 Жыл бұрын
Запихал его туда . топовый преподаватель . 😁😁😁 .
@dead_inside_ggyaafk
@dead_inside_ggyaafk 4 жыл бұрын
Спасибо
@ViktorRy2
@ViktorRy2 2 жыл бұрын
На 21:10 в выражении A[i] = *(A + i) какого типа должна быть переменная i? Если она типа char/short/int, то в правой части выражения перед сложением будет осуществлено её приведение до типа int*?
@alltheworldsastage.11688
@alltheworldsastage.11688 3 жыл бұрын
Спасибо 🙏
@wizard_still
@wizard_still 4 жыл бұрын
действительно понятно, еще бы про флаги такое найти
@jimshtepa5423
@jimshtepa5423 2 жыл бұрын
в 20:20 производится разыменование А, получается разыменование можно выполнить не только указателя, но и массива или переменных любого типа, даже примитвов?
@Ma_X64
@Ma_X64 4 жыл бұрын
Прикольно было бы разложить по элементам массива их собственные адреса.
@1nfoGames
@1nfoGames 3 жыл бұрын
Ваааа, класс, наконец я понял
@user-gl2ll5mk7s
@user-gl2ll5mk7s 4 жыл бұрын
ты мега крут )))
@sergeykorobkov9080
@sergeykorobkov9080 3 жыл бұрын
очень доходчиво,
@forsink7289
@forsink7289 6 ай бұрын
Спасибо большое
@user-vw6rf7op6x
@user-vw6rf7op6x 5 жыл бұрын
Спасибо большое за уроки, объясняете всё очень доходчиво. Только не совсем понятен смысл употребление указателей. В данном примере, можно было без и указателя присвоить переменной значение
@user-bj6kn4yo6k
@user-bj6kn4yo6k 4 жыл бұрын
Миха Сёмин используются при передачи параметров в функцию по указателю, при выделении динамической памяти (с помощью библиотечных функций malloc и т.д) например для создания динамического массива, при разработке прочих динамических структур данных (списки, деревья и прочие), при создании массивов указателей на функции и т.д.
@dmitrycaiman5952
@dmitrycaiman5952 2 ай бұрын
Спасибо!
@Video-zo5oe
@Video-zo5oe 5 жыл бұрын
Распечатаю 🙂
@andreyk.7657
@andreyk.7657 4 жыл бұрын
Спасибо.
@billlanc9461
@billlanc9461 11 ай бұрын
Идеальное пояснение
@EdenLollys
@EdenLollys Жыл бұрын
спасибо большое
@Alexcei64rus
@Alexcei64rus 4 жыл бұрын
Кто из 21?
@dmarsell
@dmarsell 4 жыл бұрын
)))
@segameserver
@segameserver 4 жыл бұрын
Согласен, тема тяжелая.))
@blackmass4925
@blackmass4925 3 жыл бұрын
Alexcei64rus Из 2021-го года?
@Alexcei64rus
@Alexcei64rus 3 жыл бұрын
@@blackmass4925 школы 21
@user-dh4zm7tq1y
@user-dh4zm7tq1y 3 жыл бұрын
ну мне 21, так что я тоже в каком-то смысле из 21
@syrengoogle
@syrengoogle Жыл бұрын
просто топ!
@rnd3205
@rnd3205 3 жыл бұрын
Класс!!!
@evgenykonovalov4870
@evgenykonovalov4870 4 жыл бұрын
как еще 1н лайк поставить просто топ видео
@user-yj9he7eh3l
@user-yj9he7eh3l 4 жыл бұрын
в натуре чётко
@DodgerEcho
@DodgerEcho Жыл бұрын
У меня один вопрос, зачем это надо, там где две звёздочки, три, ведь можно сделать простым способом например через присвоение переменной i другого значения, ну или хотя бы через *pi = ... Зачем остальные сложности?
@leoworker1752
@leoworker1752 3 жыл бұрын
Красава, спасямба бро! Все по полочкам, теперь вкурил про эти указатели. А как например обратиться к адресу путем сложения?? Ну допустим int адрес 0x1200, тогда у следующего элемента будет 0х1204 и так далее, то есть прибавляем по 4 байта. Я хочу обратиться к 20 элементу массива путем сложения, то есть 0x1200 + 4 * 20; Как вывести это?
@Video-zo5oe
@Video-zo5oe 5 жыл бұрын
Переменная что хранит адрес переменной которая сама хранится по какому-то адресу
@rattingmage9475
@rattingmage9475 4 жыл бұрын
Переменная равносильна адресу, указывающему на ячейку в памяти.
@user-dr9nd1dm7h
@user-dr9nd1dm7h 2 жыл бұрын
Все хорошо, только не понятно зачем это в итоге нужно, я про указатели. Если у нас есть переменная зачем нам обращаться к ней не по ее имени, а по адресу. Хотелось бы понять для чего это делается и какие преимущества это дает.
Тип void* и интерпретация данных
13:07
Тимофей Хирьянов
Рет қаралды 38 М.
Динамическое программирование сверху и снизу
13:54
Тимофей Хирьянов
Рет қаралды 49 М.
Super sport🤯
00:15
Lexa_Merin
Рет қаралды 19 МЛН
SHE WANTED CHIPS, BUT SHE GOT CARROTS 🤣🥕
00:19
OKUNJATA
Рет қаралды 13 МЛН
Conforto para a barriga de grávida 🤔💡
00:10
Polar em português
Рет қаралды 105 МЛН
КАКОЙ ВАШ ЛЮБИМЫЙ ЦВЕТ?😍 #game #shorts
00:17
Выделение и освобождение динамической памяти в Си
27:39
Примеры рекурсивных алгоритмов
23:54
Тимофей Хирьянов
Рет қаралды 56 М.
Ханойские башни на Си
12:25
Тимофей Хирьянов
Рет қаралды 77 М.
Рекурсия. Репка и матрёшка
18:37
Тимофей Хирьянов
Рет қаралды 115 М.
Super sport🤯
00:15
Lexa_Merin
Рет қаралды 19 МЛН