Если честно впервые за долгое время до конца и осознанно понял как работают указатели, как они передаются в функции, как происходит разименование, до этого понимал полезность при работе с функциями но, делал это больше по обезьяниму способу (вырезал в ставил из чужого кода), либо по принципу научного тыка (поучилось\не получилось). Много читал и смотрел видео но не доходило... Спасибо!!!!
Как же хорошо, что не ленитесь и делаете ближе к концу графическое объяснение, если кто-то вдруг не понял) Спасибо за ваш труд от имени всех студентов факультета программной инженерии НТУ ХПИ)))
Наконец-то хоть что-то понимаю в указателях и что мне с ними делать. Первый раз как встретил их совсем не понимал зачем они и что мне с ними делать. Тем более в книге было написано так много информации что хватило на часа 4 и я все равно почти ничего не понял. А тут пару уроков посмотрел и меня как провестило и я своём познании настолько преисполнился, что как будто бы уже 100 триллионов миллиардов лет проживаю на триллионах и триллионах таких же планет, понимаешь?
первый раз до 70 видео дошел, теперь второй раз смотрю, подзабылось немного. Для практики примеры беру в разделе MIX книжки Абрамяна. Спасибо за очень толковые уроки!
Смотрел всё взахлёб все уроки си шарпа теперь смотрю с++ .надо брать.этот курс наверно единственный курс за который мне не жалко отдать денег спасибо автору за труд
в языках программирования нет нечего бесполезного,и если в языку есть какой нибудь функцианал которым щас не кто не пользуется,это не означает что этот функцианал бесполезен,потомучто его заменило что то друго,а не удаляют его из-за того чтоб старый код не развалился
Было бы сразу классно, чтобы вы объяснили на этом этапе или на вводном уроке про функции об различии параметров и аргументов. Ну и на данном этапе новичку было бы легче усваивать информацию, если бы вы называли их по разному. Например параметр в описании функции оставить с именем "a", а уже в главной функции, где мы будем вводить аргументы для этой функции, назвать как нибудь по другому. В любом случае очень нравятся ваши уроки, спасибо вам большущее.
Да, я четыре раза перечитывала две разных книги и только такое вот объяснение на пальцах может помочь понять, пока не до конца, но теперь я хотя бы понял суть.
Спасибо за уроки ) По теме указателей меня пока еще не покидает вопрос: есть ли разница между вариантами void Foo(int &a) и void Foo(int *a) ? (в первом варианте в теле функции мы просто инкрементим 'a', а во втором сначала разыменовываем, а потом инкрементим)
классный вопрос ты задал. Поэксперементировал на практике, разницы по результату вроде нет, но код придется переделать. То есть если void Foo(int &a), то в функции надо брать не указатель а саму переменную. и в main писать уже Foo(a)
Сорри, если вы уже сами до этого дошли -- другим подмога будет. В Foo(int &a) "а" -- совсем не та "а", которая в мейне (Foo(int *a)), и поэтому адреса у них разные будут, и поэтому ничего не получится..
результат работы функции один и тот же, но разница есть под капотом. при Foo(int &a) в мейне мы просим дать функции переменную. Функция создаст на эту переменную ссылку int &a = variable. И далее в функции мы будем работать со ссылкой, как с обычной переменной, изменение значений которой будет менять и переданную переменную. Кажется, далее в плейлисте будет урок по ссылкам. при Foo(int *a) в мейне мы просим дать нам адрес. Функция создаст указатель и запишет в него адрем переменной int* a = &variable. И далее в функции понадобится разыменовывать указатель, чтобы работать со значением, хранящимся по адресу.
Спасибо за урок! Поздно пишу, но было бы прекрасно показать, чтоб до конца объяснить что при, как вы озвучивали "копировании" данных a = 0, создаётся новая ячейка памяти с новым адресом. В этот адрес копируется данные, и все изменения происходят в новой ячейке. Это бы окончательно объяснило почему мы не можем поменять данные. Код прикреплю ниже: void Foo(int a){ int *px1 = &a; a++; cout
Уроки, как обычно на высоте! Вопрос. Был уже из 48+ уроков или будет урок о том, как брать данные из файла?Допустим в блокноте лежат 2 и 3(числа), и нужно из этого файла взять их и использовать, собственно.
Перечитал кучу статеек что такое указатели, что такое адрес, как передавать в функции по указателю... короче, ни хрена не понял.... пока не посмотрел Ваш урок!!! Благодарю Вас!
Здравствуйте, я только начинающий любитель всей этой движухи. Я задумался о том, что можно в принципе не использовать указатели в программах, т.к. адрес одной переменной можно передавать другой при помощи &. И будет меньше путаницы со звёздочками (разыменованиями)
До сих пор возвращаюсь к этому видео если что то не понятно В моей программе мне потребовалось изменить размер динамического массива в функции, но обычный return был уже занят так что мне пришлось брать"Адрес указателя на массив"...Да это трудно сразу понять, но это цепочка указателей, и в пояснениях от visuan studio это показывалось как "**char", хотя создать так указатель на указатель не получится
Только в примере в функции надо было указать ++a. С инкрементом а++ все равно ничего не произошло бы, даже если аргумент правильно передавался. На выходе было бы 0 и 0. Это всё из-за приоритетов. У а++ приоритет ниже, чем у выхода функции. Кто смотрел ранние видео, тот поймет)))
А в чем разница передавать параметр по ссылке Foo(int& a){} или через указать Foo(int *a){}, оба случая работают одинаково, но при этом по ссылке реализовать легче, ведь но нужно разыменовывать указатель? UPD: Нашел похожий вопрос на форуме, разница между ссылкой & и указателем * в том, что ссылка не может быть NULL:/
Еще указатель это самостоятельный объект. А ссылка нет. Указатель можно просто объявить без инициализации (если он не является константой), ссылку нужно обязательно привязать к объекту (инициализировать). И по этому указатель можно изменить. Т.е. сделать так, чтобы он указывал на другой объект. А ссылка постоянно указывает на тот объект, на который она была привязана. Её больше нельзя привязать к другому объекту.
Очень хорошее видео. И первое, что я увидела, что ламинарию можно купить за копейки в аптеке, а ведь на Wildberries она стоит раз в 10 дороже))). Единственное, что я бы хотела добавить от себя, так это фраза: "Перед применением убедитесь, что у вас нет аллергии." Я тоже попробовала дегтярное мыло и все было хорошо, но почему-то у меня стали течь слезы из глаз. Просто сами по себе. Дальше больше. Гортань отекала ТАК, что меня принимали за мужчину по телефону. Я подумала: "Ну, вот! У меня аллергия на пыль." Тест показал, что у меня аллергия на все кроме пыли. Зато два плюсика (максимальная сила аллергии - три плюсика) на березу, а деготь делают из березы. Пришлось избавиться от моего мыла прямо в той коробочке, в которой я его хранила. А оно мне нравилась.
Подскажите пожалуйста. Я попробовал таким образом и у меня так же получился) #include using namespace std; void Foo(int &pa) { pa++; } void main() { int a = 12; Foo(a); cout
о передаче переменной в функцию понятнее наверно так будет : #include using namespace std; int foo ( int a) { a++; return a; } int main(int argc, const char * argv[]) { int a = 10; cout
Не перестаю восхищаться Вашими уроками. Так лаконично и так доходчиво!!!! Браво!!!
точняк
Это просто ох**нно . Спасибо тебе большое за уроки . Один урок длинной в 14 минут дает мне больше знаний чем пара в универе
Если честно впервые за долгое время до конца и осознанно понял как работают указатели, как они передаются в функции, как происходит разименование, до этого понимал полезность при работе с функциями но, делал это больше по обезьяниму способу (вырезал в ставил из чужого кода), либо по принципу научного тыка (поучилось\не получилось). Много читал и смотрел видео но не доходило... Спасибо!!!!
Как же хорошо, что не ленитесь и делаете ближе к концу графическое объяснение, если кто-то вдруг не понял)
Спасибо за ваш труд от имени всех студентов факультета программной инженерии НТУ ХПИ)))
ХПИ помойка
@@user-pc5td9nb4u нет :)
Политех лучше
@@lambda4591 а разве не одно и тоже ХПИ и Политех
@@vladmasik5406 одно)
Спасибо!!! У нас информатичка 90 минут на лекции объясняла и ничего не понятно, а вы за 17 минут все прояснили!
ролику 5 лет но до сих пор актуален. Спасибо великому учителю!
до начала просто влипливаю Лайк
#указатели #функции #SimpleCode #урокипрограммирования
Класс! Невероятно изложено! Я наконец-то понял, что такое указатели и как с ними обращаться.
Большое спасибо за видео, Сергей! Доступно, внятно и доходчиво!
Спасибо за ваши уроки!
Спасибо, что есть такие люди как вы! ☺
Благодарю, самые лучшие уроки которые когда либо смотрел! Блеск!
Спасибо. подача информации просто отменная. Это действительно огромная помощь в освоении С++. Приятно смотреть уроки от специалиста.
Очень доступный курс по С++ БРАВО!!
Сергей, огромное спасибо вам за ваши труды!!!!!!!!
Спасибо большое! Вы очень одаренный преподаватель!
Спасибо Вам огромное за такие уроки, с каждым новым видео узнаю для себя всё больше и больше!
Просто супер, огромное спасибо за такие понятные уроки!
очень хороший урок, спасибо! Особенно спасибо за часть с схематическим объяснением.
while(true)
cout
while (rolik() == watched) {
pressLike();
}
А как же выход из цикла? Нужно еще дописать 1/0;
@@anoname10 Бесконечное кол-во лайков. За такие уроки не жалко.
@@billy1998 ну все же break то нужен
@@anoname10 а ты нудный
Очень классно и доступно рассказываете, большое спасибо
Самый толковый учитель . Спасибо вам
Огромное спасибо, за ваши уроки, это что-то нереальное, ваши ролики по 15 мин не сравнятся с парами по 1.20 ч в универе))
отличный контент. не останавливайтесь! пожалуйста!
Мое почтение , замечательный урок .
Лучший учитель всех времен. Огромное уважение вам.
Брат , браво , ты самый лучший , спасибо тебе сердечное!
Спасибо огромно!!!
Отличные уроки, помогают вспомнить прописные истины программирования
спасибо большое. уже неделю разбираюсь с этими указателями и ваши уроки начали помогать с ними
Спасибо за урок !!!
Спасибо за урок.
Спасибо огромное!!!
Наконец-то хоть что-то понимаю в указателях и что мне с ними делать. Первый раз как встретил их совсем не понимал зачем они и что мне с ними делать. Тем более в книге было написано так много информации что хватило на часа 4 и я все равно почти ничего не понял. А тут пару уроков посмотрел и меня как провестило и я своём познании настолько преисполнился, что как будто бы уже 100 триллионов миллиардов лет проживаю на триллионах и триллионах таких же планет, понимаешь?
Супер, пожалуйста продолжайте делать уроки по С++, особенно в глубь
Спасибо за урок! Ставлю лайк под каждым вашим видео
Спасибо огромное. Вы мой спаситель
Спасибо!!!
первый раз до 70 видео дошел, теперь второй раз смотрю, подзабылось немного. Для практики примеры беру в разделе MIX книжки Абрамяна. Спасибо за очень толковые уроки!
лучшие и понятные уроки на всем ютубе(ру) по сравнению с другими, которые и объяснить не могут да еще и пишут так долго что заснуть можно. +++++
отличное видео, я смотрю правда на скорости 2x. Раньше читал книгу, в принципе понимание было и Вы как лектор его просто закрепили
Очень хорошие уроки у вас !
Понятно, спасибо
Спасибо! Мне помогло разобраться!!!
Спасибо 😮 Благодарю 🙏
Спасибо!🥰
Вы лучший!
Смотрел всё взахлёб все уроки си шарпа теперь смотрю с++ .надо брать.этот курс наверно единственный курс за который мне не жалко отдать денег спасибо автору за труд
The best channel in the world))
Thanks!
хорошие уроки.
Спасибо ))
Спасибоньчики!!!
Топ 1 уроки по с++ во всем ютубе
сверх доходчиво )))
Спасибо
спасибо
* Самые понятные, видео уроки по c++, на всём (RU) youtube *
Я эти уроки начал смотреть благодаря вашему комментарию! Посмотрел до этого, пока очень доволен, многое стало понятным.
Очень интересно
Всегда думал что указатели бесполезные, но это видео кардинально поменяло моё мнение
в языках программирования нет нечего бесполезного,и если в языку есть какой нибудь функцианал которым щас не кто не пользуется,это не означает что этот функцианал бесполезен,потомучто его заменило что то друго,а не удаляют его из-за того чтоб старый код не развалился
Объяснил, что даже я понял
Крутое видео !!!!
Спасибо за ваш труд)
Пожалуйста! =)
👍
Как только Сергей открывает paint, ты понимаешь, что сейчас он прояснит твоё сознание x10
Если смотреть видео в то же время суток в которое оно было записано, то будет ощущение что это прямая трансляция 👍🙂
Лайк)
Спсб
Было бы сразу классно, чтобы вы объяснили на этом этапе или на вводном уроке про функции об различии параметров и аргументов. Ну и на данном этапе новичку было бы легче усваивать информацию, если бы вы называли их по разному. Например параметр в описании функции оставить с именем "a", а уже в главной функции, где мы будем вводить аргументы для этой функции, назвать как нибудь по другому. В любом случае очень нравятся ваши уроки, спасибо вам большущее.
Да , за все 50 уроков , понятие о различии параметров и аргументов для меня остается пока самым сложным . Все остальное гораздо проще.
ты лучший
Да, я четыре раза перечитывала две разных книги и только такое вот объяснение на пальцах может помочь понять, пока не до конца, но теперь я хотя бы понял суть.
Спасибо, долго не мог понять, читал книгу Шилдта, но не смог осилить эту магию. Тепер это уже не магия для меня!
лучший
Друг ходит в кружок и ни чего не понял, я смотрю ваши уроки и отлично всё понимаю. Спасибо
Уроки супер! Пожевал, пожевал и врот положил!
почему я кайфую от этого?.....3й раз смотрю, кайф!!
+++
Спасибо за уроки ) По теме указателей меня пока еще не покидает вопрос: есть ли разница между вариантами void Foo(int &a) и void Foo(int *a) ? (в первом варианте в теле функции мы просто инкрементим 'a', а во втором сначала разыменовываем, а потом инкрементим)
классный вопрос ты задал. Поэксперементировал на практике, разницы по результату вроде нет, но код придется переделать. То есть если void Foo(int &a), то в функции надо брать не указатель а саму переменную. и в main писать уже Foo(a)
Сорри, если вы уже сами до этого дошли -- другим подмога будет.
В Foo(int &a) "а" -- совсем не та "а", которая в мейне (Foo(int *a)), и поэтому адреса у них разные будут, и поэтому ничего не получится..
результат работы функции один и тот же, но разница есть под капотом.
при Foo(int &a) в мейне мы просим дать функции переменную. Функция создаст на эту переменную ссылку int &a = variable. И далее в функции мы будем работать со ссылкой, как с обычной переменной, изменение значений которой будет менять и переданную переменную. Кажется, далее в плейлисте будет урок по ссылкам.
при Foo(int *a) в мейне мы просим дать нам адрес. Функция создаст указатель и запишет в него адрем переменной int* a = &variable. И далее в функции понадобится разыменовывать указатель, чтобы работать со значением, хранящимся по адресу.
Спасибо за урок! Поздно пишу, но было бы прекрасно показать, чтоб до конца объяснить что при, как вы озвучивали "копировании" данных a = 0, создаётся новая ячейка памяти с новым адресом. В этот адрес копируется данные, и все изменения происходят в новой ячейке. Это бы окончательно объяснило почему мы не можем поменять данные. Код прикреплю ниже:
void Foo(int a){
int *px1 = &a;
a++;
cout
Если бы все так могли объяснять ...
просто не у всех есть паинт
@@poopm9325 Вот спустя 2 года я прочитал твой коммент, спасибо что вызвал на моем лице улыбку)))
otlichno
Good
Уроки, как обычно на высоте! Вопрос. Был уже из 48+ уроков или будет урок о том, как брать данные из файла?Допустим в блокноте лежат 2 и 3(числа), и нужно из этого файла взять их и использовать, собственно.
Об этом урока ещё не было, но будет.
Прекрасно :) Буду ждать, видео еще есть какие смотреть. Спасибо!
Перечитал кучу статеек что такое указатели, что такое адрес, как передавать в функции по указателю... короче, ни хрена не понял.... пока не посмотрел Ваш урок!!! Благодарю Вас!
Спасибо, мне именно помогло понять изображение, так как у меня не математический склад.
Лишь бы отмазку найти - "не математический склад". Ленись больше, ага.
@@flytrap. а где тут проявление лени ?
А что по итогу лучше, оптимизирование и используетс впринцепи? Вариант с указателем или ретерном??
привет из 2023. Спасибо большое!
Здравствуйте, я только начинающий любитель всей этой движухи. Я задумался о том, что можно в принципе не использовать указатели в программах, т.к. адрес одной переменной можно передавать другой при помощи &. И будет меньше путаницы со звёздочками (разыменованиями)
Вы бы хоть пример написали. Интересно.
@@infinity-w наверное, он имел ввиду такое
void foo(int a){...}
int a = 0;
foo(&a);
Хоть это и не работает, лол
До сих пор возвращаюсь к этому видео если что то не понятно
В моей программе мне потребовалось изменить размер динамического массива в функции, но обычный return был уже занят так что мне пришлось брать"Адрес указателя на массив"...Да это трудно сразу понять, но это цепочка указателей, и в пояснениях от visuan studio это показывалось как "**char", хотя создать так указатель на указатель не получится
Только в примере в функции надо было указать ++a. С инкрементом а++ все равно ничего не произошло бы, даже если аргумент правильно передавался. На выходе было бы 0 и 0. Это всё из-за приоритетов. У а++ приоритет ниже, чем у выхода функции. Кто смотрел ранние видео, тот поймет)))
Там где адрес в памяти вы указали я сначала подумал, что там написано 0хcock
axaxa тоже самое
А в чем разница передавать параметр по ссылке Foo(int& a){} или через указать Foo(int *a){}, оба случая работают одинаково, но при этом по ссылке реализовать легче, ведь но нужно разыменовывать указатель?
UPD: Нашел похожий вопрос на форуме, разница между ссылкой & и указателем * в том, что ссылка не может быть NULL:/
Еще указатель это самостоятельный объект. А ссылка нет. Указатель можно просто объявить без инициализации (если он не является константой), ссылку нужно обязательно привязать к объекту (инициализировать). И по этому указатель можно изменить. Т.е. сделать так, чтобы он указывал на другой объект. А ссылка постоянно указывает на тот объект, на который она была привязана. Её больше нельзя привязать к другому объекту.
Будут уроки по Java???
МГТУ имени Баумана ИУ6 я вас люблю!
Прежде чем смотреть видео ставлю лайк и пишу комментарий.
up
вау
а если в функции Foo вывести через cout переменную а* для наглядности? не надо пользоваться отладчиком..и покажет она значение инкремента
Очень хорошее видео. И первое, что я увидела, что ламинарию можно купить за копейки в аптеке, а ведь на Wildberries она стоит раз в 10 дороже))). Единственное, что я бы хотела добавить от себя, так это фраза: "Перед применением убедитесь, что у вас нет аллергии."
Я тоже попробовала дегтярное мыло и все было хорошо, но почему-то у меня стали течь слезы из глаз. Просто сами по себе. Дальше больше. Гортань отекала ТАК, что меня принимали за мужчину по телефону. Я подумала: "Ну, вот! У меня аллергия на пыль." Тест показал, что у меня аллергия на все кроме пыли. Зато два плюсика (максимальная сила аллергии - три плюсика) на березу, а деготь делают из березы. Пришлось избавиться от моего мыла прямо в той коробочке, в которой я его хранила. А оно мне нравилась.
очень полезный комментарий, но вы видео ошиблись )
@@IgorIlinoff ))) Да действительно. И как так вышло...
Подскажите пожалуйста. Я попробовал таким образом и у меня так же получился)
#include
using namespace std;
void Foo(int &pa) {
pa++;
}
void main()
{
int a = 12;
Foo(a);
cout
Разобрался в этом вопросе?
если правильно помню то при помощи & можно указать адрес переменной
Да спасибо
о передаче переменной в функцию понятнее наверно так будет :
#include
using namespace std;
int foo ( int a) {
a++;
return a;
}
int main(int argc, const char * argv[]) {
int a = 10;
cout