Передача параметров в функцию по указателю c++. Передача указателя в функцию си. Урок #48

Поделиться
HTML-код

Комментарии • 209

  • @skorp291
    @skorp291 6 лет назад +273

    Не перестаю восхищаться Вашими уроками. Так лаконично и так доходчиво!!!! Браво!!!

  • @user-to5se7mi9s
    @user-to5se7mi9s 5 лет назад +76

    Это просто ох**нно . Спасибо тебе большое за уроки . Один урок длинной в 14 минут дает мне больше знаний чем пара в универе

  • @Deonnisiy
    @Deonnisiy 6 лет назад +91

    Если честно впервые за долгое время до конца и осознанно понял как работают указатели, как они передаются в функции, как происходит разименование, до этого понимал полезность при работе с функциями но, делал это больше по обезьяниму способу (вырезал в ставил из чужого кода), либо по принципу научного тыка (поучилось\не получилось). Много читал и смотрел видео но не доходило... Спасибо!!!!

  • @ruslan_yefimov
    @ruslan_yefimov 4 года назад +171

    Как же хорошо, что не ленитесь и делаете ближе к концу графическое объяснение, если кто-то вдруг не понял)
    Спасибо за ваш труд от имени всех студентов факультета программной инженерии НТУ ХПИ)))

    • @user-pc5td9nb4u
      @user-pc5td9nb4u 3 года назад +5

      ХПИ помойка

    • @FreQl
      @FreQl 2 года назад

      @@user-pc5td9nb4u нет :)

    • @lambda4591
      @lambda4591 2 года назад +1

      Политех лучше

    • @vladmasik5406
      @vladmasik5406 2 года назад

      @@lambda4591 а разве не одно и тоже ХПИ и Политех

    • @lambda4591
      @lambda4591 2 года назад

      @@vladmasik5406 одно)

  • @everlastingsummer2044
    @everlastingsummer2044 5 лет назад +53

    Спасибо!!! У нас информатичка 90 минут на лекции объясняла и ничего не понятно, а вы за 17 минут все прояснили!

  • @marlentimur4988
    @marlentimur4988 Год назад +14

    ролику 5 лет но до сих пор актуален. Спасибо великому учителю!
    до начала просто влипливаю Лайк

  • @SimpleCodeIT
    @SimpleCodeIT  6 лет назад +26

    #указатели #функции #SimpleCode #урокипрограммирования

  • @michaelovcharenko7646
    @michaelovcharenko7646 5 лет назад +24

    Класс! Невероятно изложено! Я наконец-то понял, что такое указатели и как с ними обращаться.

  • @archiechellaut9483
    @archiechellaut9483 2 года назад

    Большое спасибо за видео, Сергей! Доступно, внятно и доходчиво!

  • @Danshyn
    @Danshyn 5 лет назад +5

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

  • @MarinaZahovora
    @MarinaZahovora 2 года назад +2

    Спасибо, что есть такие люди как вы! ☺

  • @MoneyInvest
    @MoneyInvest 6 лет назад +4

    Благодарю, самые лучшие уроки которые когда либо смотрел! Блеск!

  • @donrumata9197
    @donrumata9197 3 года назад +2

    Спасибо. подача информации просто отменная. Это действительно огромная помощь в освоении С++. Приятно смотреть уроки от специалиста.

  • @vanyavasya6685
    @vanyavasya6685 4 года назад +4

    Очень доступный курс по С++ БРАВО!!

  • @mrMut-jv3sx
    @mrMut-jv3sx 2 года назад +1

    Сергей, огромное спасибо вам за ваши труды!!!!!!!!

  • @AnnTimLeo
    @AnnTimLeo 5 лет назад +8

    Спасибо большое! Вы очень одаренный преподаватель!

  • @user-mn3ow3fk7w
    @user-mn3ow3fk7w 5 лет назад +2

    Спасибо Вам огромное за такие уроки, с каждым новым видео узнаю для себя всё больше и больше!

  • @fearless5533
    @fearless5533 2 года назад +1

    Просто супер, огромное спасибо за такие понятные уроки!

  • @alexandrprodan8794
    @alexandrprodan8794 4 года назад +2

    очень хороший урок, спасибо! Особенно спасибо за часть с схематическим объяснением.

  • @khasantochiev3829
    @khasantochiev3829 5 лет назад +93

    while(true)
    cout

    • @ruslan_yefimov
      @ruslan_yefimov 4 года назад +7

      while (rolik() == watched) {
      pressLike();
      }

    • @anoname10
      @anoname10 4 года назад

      А как же выход из цикла? Нужно еще дописать 1/0;

    • @billy1998
      @billy1998 4 года назад +14

      @@anoname10 Бесконечное кол-во лайков. За такие уроки не жалко.

    • @anoname10
      @anoname10 4 года назад +1

      @@billy1998 ну все же break то нужен

    • @Diabolic9595
      @Diabolic9595 4 года назад +9

      @@anoname10 а ты нудный

  • @shahaman5694
    @shahaman5694 3 года назад

    Очень классно и доступно рассказываете, большое спасибо

  • @moscow_in_FIRE
    @moscow_in_FIRE 4 года назад

    Самый толковый учитель . Спасибо вам

  • @user-bd6pf7sc4t
    @user-bd6pf7sc4t 2 года назад +9

    Огромное спасибо, за ваши уроки, это что-то нереальное, ваши ролики по 15 мин не сравнятся с парами по 1.20 ч в универе))

  • @f1n1st13
    @f1n1st13 2 года назад

    отличный контент. не останавливайтесь! пожалуйста!

  • @bulba1995
    @bulba1995 Год назад

    Мое почтение , замечательный урок .

  • @neon6725
    @neon6725 3 года назад

    Лучший учитель всех времен. Огромное уважение вам.

  • @user-tn5rk3up1o
    @user-tn5rk3up1o 2 года назад

    Брат , браво , ты самый лучший , спасибо тебе сердечное!

  • @user-yr5ww3pb1c
    @user-yr5ww3pb1c 6 лет назад +5

    Спасибо огромно!!!

  • @volodymyrgutsu7011
    @volodymyrgutsu7011 2 года назад

    Отличные уроки, помогают вспомнить прописные истины программирования

  • @obolochka1537
    @obolochka1537 4 года назад +2

    спасибо большое. уже неделю разбираюсь с этими указателями и ваши уроки начали помогать с ними

  • @egorkalmykov4003
    @egorkalmykov4003 3 года назад

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

  • @Ms001man
    @Ms001man 5 лет назад

    Спасибо за урок.

  • @AA-un4so
    @AA-un4so 9 месяцев назад

    Спасибо огромное!!!

  • @user-rr6lu3kg8y
    @user-rr6lu3kg8y Год назад +2

    Наконец-то хоть что-то понимаю в указателях и что мне с ними делать. Первый раз как встретил их совсем не понимал зачем они и что мне с ними делать. Тем более в книге было написано так много информации что хватило на часа 4 и я все равно почти ничего не понял. А тут пару уроков посмотрел и меня как провестило и я своём познании настолько преисполнился, что как будто бы уже 100 триллионов миллиардов лет проживаю на триллионах и триллионах таких же планет, понимаешь?

  • @Sibir-bv2hp
    @Sibir-bv2hp 4 года назад +1

    Супер, пожалуйста продолжайте делать уроки по С++, особенно в глубь

  • @maksimboiko007
    @maksimboiko007 Год назад

    Спасибо за урок! Ставлю лайк под каждым вашим видео

  • @rubbish3359
    @rubbish3359 5 лет назад +2

    Спасибо огромное. Вы мой спаситель

  • @rettjaconomaili8201
    @rettjaconomaili8201 6 лет назад +4

    Спасибо!!!

  • @user-zt5hj1um5l
    @user-zt5hj1um5l 3 года назад

    первый раз до 70 видео дошел, теперь второй раз смотрю, подзабылось немного. Для практики примеры беру в разделе MIX книжки Абрамяна. Спасибо за очень толковые уроки!

  • @VideoEffekts
    @VideoEffekts 5 лет назад +1

    лучшие и понятные уроки на всем ютубе(ру) по сравнению с другими, которые и объяснить не могут да еще и пишут так долго что заснуть можно. +++++

  • @almatytelecom1
    @almatytelecom1 5 лет назад +1

    отличное видео, я смотрю правда на скорости 2x. Раньше читал книгу, в принципе понимание было и Вы как лектор его просто закрепили

  • @aleksandrrodan5196
    @aleksandrrodan5196 Год назад

    Очень хорошие уроки у вас !

  • @prizgenaprizgena8193
    @prizgenaprizgena8193 3 года назад

    Понятно, спасибо

  • @ksusuhareva4288
    @ksusuhareva4288 2 года назад

    Спасибо! Мне помогло разобраться!!!

  • @polmesh2057
    @polmesh2057 Год назад

    Спасибо 😮 Благодарю 🙏

  • @user-dq5zu1vg2o
    @user-dq5zu1vg2o 2 года назад

    Спасибо!🥰

  • @user-ig5mt6pn6x
    @user-ig5mt6pn6x 5 лет назад

    Вы лучший!

  • @chon-coding
    @chon-coding 2 года назад

    Смотрел всё взахлёб все уроки си шарпа теперь смотрю с++ .надо брать.этот курс наверно единственный курс за который мне не жалко отдать денег спасибо автору за труд

  • @andreykutsyn3728
    @andreykutsyn3728 5 лет назад +2

    The best channel in the world))

  • @user-zs8hi4rp9h
    @user-zs8hi4rp9h 4 года назад

    Thanks!

  • @wldzam
    @wldzam 3 года назад

    хорошие уроки.

  • @serega8812
    @serega8812 2 года назад

    Спасибо ))

  • @alexeymi2618
    @alexeymi2618 5 лет назад

    Спасибоньчики!!!

  • @duch2K
    @duch2K 4 года назад

    Топ 1 уроки по с++ во всем ютубе

  • @user-ho7db5oz8d
    @user-ho7db5oz8d 3 года назад +1

    сверх доходчиво )))

  • @vladimirdiadichev6140
    @vladimirdiadichev6140 6 лет назад +2

    Спасибо

  • @deniskozak5997
    @deniskozak5997 6 лет назад +6

    спасибо

  • @user-rd1hb8uf9b
    @user-rd1hb8uf9b 6 лет назад +32

    * Самые понятные, видео уроки по c++, на всём (RU) youtube *

    • @Imstalcon
      @Imstalcon 4 года назад +5

      Я эти уроки начал смотреть благодаря вашему комментарию! Посмотрел до этого, пока очень доволен, многое стало понятным.

  • @Vladimir_Master
    @Vladimir_Master 5 лет назад

    Очень интересно

  • @retinizer7702
    @retinizer7702 5 лет назад +10

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

    • @ylikitishnik1946
      @ylikitishnik1946 2 года назад +3

      в языках программирования нет нечего бесполезного,и если в языку есть какой нибудь функцианал которым щас не кто не пользуется,это не означает что этот функцианал бесполезен,потомучто его заменило что то друго,а не удаляют его из-за того чтоб старый код не развалился

  • @alekseynikitin3354
    @alekseynikitin3354 4 года назад +9

    Объяснил, что даже я понял

  • @danillatypov9081
    @danillatypov9081 2 года назад

    Крутое видео !!!!

  • @mykhailomorhal2181
    @mykhailomorhal2181 6 лет назад +21

    Спасибо за ваш труд)

  • @SplinterCell...
    @SplinterCell... 7 месяцев назад +1

    👍

  • @sleepyNovember_project
    @sleepyNovember_project 5 месяцев назад +1

    Как только Сергей открывает paint, ты понимаешь, что сейчас он прояснит твоё сознание x10

  • @saidamir6538
    @saidamir6538 2 года назад

    Если смотреть видео в то же время суток в которое оно было записано, то будет ощущение что это прямая трансляция 👍🙂

  • @user-ok5bp6uz1e
    @user-ok5bp6uz1e 3 года назад

    Лайк)

  • @user-ye7vc6ug1l
    @user-ye7vc6ug1l 5 лет назад +3

    Спсб

  • @meeba-dev
    @meeba-dev 4 года назад

    Было бы сразу классно, чтобы вы объяснили на этом этапе или на вводном уроке про функции об различии параметров и аргументов. Ну и на данном этапе новичку было бы легче усваивать информацию, если бы вы называли их по разному. Например параметр в описании функции оставить с именем "a", а уже в главной функции, где мы будем вводить аргументы для этой функции, назвать как нибудь по другому. В любом случае очень нравятся ваши уроки, спасибо вам большущее.

    • @ton12047
      @ton12047 11 месяцев назад

      Да , за все 50 уроков , понятие о различии параметров и аргументов для меня остается пока самым сложным . Все остальное гораздо проще.

  • @user-qf4ti7gc4r
    @user-qf4ti7gc4r Год назад

    ты лучший

  • @ivanfigvsm1540
    @ivanfigvsm1540 2 года назад

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

  • @ridley0ne
    @ridley0ne 4 года назад

    Спасибо, долго не мог понять, читал книгу Шилдта, но не смог осилить эту магию. Тепер это уже не магия для меня!

  • @d3s1r38
    @d3s1r38 2 месяца назад

    лучший

  • @sewsdfd1049
    @sewsdfd1049 5 лет назад +1

    Друг ходит в кружок и ни чего не понял, я смотрю ваши уроки и отлично всё понимаю. Спасибо

  • @user-lp9lb1zh9d
    @user-lp9lb1zh9d Месяц назад

    Уроки супер! Пожевал, пожевал и врот положил!

  • @mannas273
    @mannas273 3 года назад

    почему я кайфую от этого?.....3й раз смотрю, кайф!!

  • @dmytroboiko1
    @dmytroboiko1 3 года назад +11

    Спасибо за уроки ) По теме указателей меня пока еще не покидает вопрос: есть ли разница между вариантами void Foo(int &a) и void Foo(int *a) ? (в первом варианте в теле функции мы просто инкрементим 'a', а во втором сначала разыменовываем, а потом инкрементим)

    • @IgorIlinoff
      @IgorIlinoff 2 года назад +5

      классный вопрос ты задал. Поэксперементировал на практике, разницы по результату вроде нет, но код придется переделать. То есть если void Foo(int &a), то в функции надо брать не указатель а саму переменную. и в main писать уже Foo(a)

    • @kellsaliss5727
      @kellsaliss5727 2 года назад

      Сорри, если вы уже сами до этого дошли -- другим подмога будет.
      В Foo(int &a) "а" -- совсем не та "а", которая в мейне (Foo(int *a)), и поэтому адреса у них разные будут, и поэтому ничего не получится..

    • @eugeneshklyarevich4905
      @eugeneshklyarevich4905 Год назад

      результат работы функции один и тот же, но разница есть под капотом.
      при Foo(int &a) в мейне мы просим дать функции переменную. Функция создаст на эту переменную ссылку int &a = variable. И далее в функции мы будем работать со ссылкой, как с обычной переменной, изменение значений которой будет менять и переданную переменную. Кажется, далее в плейлисте будет урок по ссылкам.
      при Foo(int *a) в мейне мы просим дать нам адрес. Функция создаст указатель и запишет в него адрем переменной int* a = &variable. И далее в функции понадобится разыменовывать указатель, чтобы работать со значением, хранящимся по адресу.

  • @user-wf7ds7hy1i
    @user-wf7ds7hy1i 2 года назад

    Спасибо за урок! Поздно пишу, но было бы прекрасно показать, чтоб до конца объяснить что при, как вы озвучивали "копировании" данных a = 0, создаётся новая ячейка памяти с новым адресом. В этот адрес копируется данные, и все изменения происходят в новой ячейке. Это бы окончательно объяснило почему мы не можем поменять данные. Код прикреплю ниже:
    void Foo(int a){
    int *px1 = &a;
    a++;
    cout

  • @user-gj3bf1lf9g
    @user-gj3bf1lf9g 6 лет назад +18

    Если бы все так могли объяснять ...

    • @poopm9325
      @poopm9325 5 лет назад +32

      просто не у всех есть паинт

    • @user-dt8qm1zy7w
      @user-dt8qm1zy7w 3 года назад +2

      @@poopm9325 Вот спустя 2 года я прочитал твой коммент, спасибо что вызвал на моем лице улыбку)))

  • @giorgikiladze3230
    @giorgikiladze3230 5 лет назад

    otlichno

  • @user-pg1ed3jw1p
    @user-pg1ed3jw1p 3 года назад

    Good

  • @den1ssss
    @den1ssss 6 лет назад +1

    Уроки, как обычно на высоте! Вопрос. Был уже из 48+ уроков или будет урок о том, как брать данные из файла?Допустим в блокноте лежат 2 и 3(числа), и нужно из этого файла взять их и использовать, собственно.

    • @SimpleCodeIT
      @SimpleCodeIT  6 лет назад

      Об этом урока ещё не было, но будет.

    • @den1ssss
      @den1ssss 6 лет назад

      Прекрасно :) Буду ждать, видео еще есть какие смотреть. Спасибо!

  • @hrandron
    @hrandron 4 года назад

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

  • @alexeylozin7443
    @alexeylozin7443 4 года назад +4

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

    • @flytrap.
      @flytrap. 4 года назад +4

      Лишь бы отмазку найти - "не математический склад". Ленись больше, ага.

    • @faust8th316
      @faust8th316 Год назад

      @@flytrap. а где тут проявление лени ?

  • @doctor_livsi_pod_phonk
    @doctor_livsi_pod_phonk Год назад

    А что по итогу лучше, оптимизирование и используетс впринцепи? Вариант с указателем или ретерном??

  • @user-bb1nk1po5e
    @user-bb1nk1po5e Год назад

    привет из 2023. Спасибо большое!

  • @dmirtyzyblienko4423
    @dmirtyzyblienko4423 Год назад

    Здравствуйте, я только начинающий любитель всей этой движухи. Я задумался о том, что можно в принципе не использовать указатели в программах, т.к. адрес одной переменной можно передавать другой при помощи &. И будет меньше путаницы со звёздочками (разыменованиями)

    • @infinity-w
      @infinity-w Год назад

      Вы бы хоть пример написали. Интересно.

    • @aintnochange
      @aintnochange 4 месяца назад

      ​@@infinity-w наверное, он имел ввиду такое
      void foo(int a){...}
      int a = 0;
      foo(&a);
      Хоть это и не работает, лол

  • @but9l471
    @but9l471 2 года назад

    До сих пор возвращаюсь к этому видео если что то не понятно
    В моей программе мне потребовалось изменить размер динамического массива в функции, но обычный return был уже занят так что мне пришлось брать"Адрес указателя на массив"...Да это трудно сразу понять, но это цепочка указателей, и в пояснениях от visuan studio это показывалось как "**char", хотя создать так указатель на указатель не получится

  • @makrah4231
    @makrah4231 4 года назад +1

    Только в примере в функции надо было указать ++a. С инкрементом а++ все равно ничего не произошло бы, даже если аргумент правильно передавался. На выходе было бы 0 и 0. Это всё из-за приоритетов. У а++ приоритет ниже, чем у выхода функции. Кто смотрел ранние видео, тот поймет)))

  • @user-qe7md6tb5l
    @user-qe7md6tb5l 3 года назад +3

    Там где адрес в памяти вы указали я сначала подумал, что там написано 0хcock

  • @MooNDesigns
    @MooNDesigns 4 года назад +3

    А в чем разница передавать параметр по ссылке Foo(int& a){} или через указать Foo(int *a){}, оба случая работают одинаково, но при этом по ссылке реализовать легче, ведь но нужно разыменовывать указатель?
    UPD: Нашел похожий вопрос на форуме, разница между ссылкой & и указателем * в том, что ссылка не может быть NULL:/

    • @nubozxc7385
      @nubozxc7385 2 года назад +1

      Еще указатель это самостоятельный объект. А ссылка нет. Указатель можно просто объявить без инициализации (если он не является константой), ссылку нужно обязательно привязать к объекту (инициализировать). И по этому указатель можно изменить. Т.е. сделать так, чтобы он указывал на другой объект. А ссылка постоянно указывает на тот объект, на который она была привязана. Её больше нельзя привязать к другому объекту.

  • @babushka228gl
    @babushka228gl 6 лет назад

    Будут уроки по Java???

  • @huntermaster617
    @huntermaster617 5 месяцев назад

    МГТУ имени Баумана ИУ6 я вас люблю!

  • @vicar-martyr
    @vicar-martyr 3 года назад

    Прежде чем смотреть видео ставлю лайк и пишу комментарий.

  • @Viamsupervadetvadens
    @Viamsupervadetvadens 6 лет назад

    up

  • @alko4224
    @alko4224 2 года назад

    вау

  • @NEO-bf7up
    @NEO-bf7up 5 лет назад

    а если в функции Foo вывести через cout переменную а* для наглядности? не надо пользоваться отладчиком..и покажет она значение инкремента

  • @user-nj2jy7tb6r
    @user-nj2jy7tb6r 4 года назад

    Очень хорошее видео. И первое, что я увидела, что ламинарию можно купить за копейки в аптеке, а ведь на Wildberries она стоит раз в 10 дороже))). Единственное, что я бы хотела добавить от себя, так это фраза: "Перед применением убедитесь, что у вас нет аллергии."
    Я тоже попробовала дегтярное мыло и все было хорошо, но почему-то у меня стали течь слезы из глаз. Просто сами по себе. Дальше больше. Гортань отекала ТАК, что меня принимали за мужчину по телефону. Я подумала: "Ну, вот! У меня аллергия на пыль." Тест показал, что у меня аллергия на все кроме пыли. Зато два плюсика (максимальная сила аллергии - три плюсика) на березу, а деготь делают из березы. Пришлось избавиться от моего мыла прямо в той коробочке, в которой я его хранила. А оно мне нравилась.

    • @IgorIlinoff
      @IgorIlinoff 2 года назад

      очень полезный комментарий, но вы видео ошиблись )

    • @user-nj2jy7tb6r
      @user-nj2jy7tb6r 2 года назад

      @@IgorIlinoff ))) Да действительно. И как так вышло...

  • @armensargsyan9255
    @armensargsyan9255 3 года назад +1

    Подскажите пожалуйста. Я попробовал таким образом и у меня так же получился)
    #include
    using namespace std;
    void Foo(int &pa) {
    pa++;
    }
    void main()
    {
    int a = 12;
    Foo(a);
    cout

    • @RomanZverev-yc5qc
      @RomanZverev-yc5qc 3 года назад +1

      Разобрался в этом вопросе?

    • @roockeet3460
      @roockeet3460 3 года назад +1

      если правильно помню то при помощи & можно указать адрес переменной

    • @armensargsyan9255
      @armensargsyan9255 3 года назад

      Да спасибо

  • @alexmuzychuk5969
    @alexmuzychuk5969 6 лет назад

    о передаче переменной в функцию понятнее наверно так будет :
    #include
    using namespace std;
    int foo ( int a) {
    a++;
    return a;
    }
    int main(int argc, const char * argv[]) {
    int a = 10;
    cout