Передача параметров в функцию по значению. Параметры функции. Передача аргументов в функцию. #34
Вставка
- Опубліковано 27 чер 2017
- Понравилось видео или оказалось полезным? Подпишись!
Передача параметров в функцию по значению. Параметры функции. Передача аргументов в функцию. #34
Уроки по программированию
Наша группа ВК smplcode
Подписывайтесь на канал / @simplecodeit
Инкремент и декремент. Постфиксный и префиксный. Пример. Синтаксис. C++ для начинающих. Урок #9.
• Инкремент и декремент....
Низкий поклон автору. Пожелание: хотелось бы видеокурс с большим количеством домашних заданий и их разборов.
Отличное пожелание ,присоединяюсь!!!
Да, пожалуйста, хотелось бы видеть больше домашних заданий с их дальнейшим разбором. ОГРОМНОЕ СПАСИБО!
@@GattoPlayприсоединяюсь к вам,также хотелось бы увидеть создание простеньких игр с их объяснением)
@@shamistanaliyev5678 Создание игр, с освещением и какой-нибудь графики с освещением, физикой тел, требует умения работы с геометрией, про создание моделей и текстур даже говорить не буду
Просто в интернете найдите сайты с заданиями и там набивайте руку
отдельное спасибо за ДЗ в уроках)))
Да, в обучении по программированию обязательно должна быть практика.
отличная подача, нету воды вообще, все четко по делу.
Очередное спасибо за урок, отдельное спасибо за 1080!
* Самые понятные, видео уроки по c++, на всём (RU) youtube *
+
Спасибо, что делишься знаниями, ты объясняешь все ОЧЕНЬ понятно и легко. Ты лучше всех моих преподов. С твоими объяснениями все стало намного легче и понятней.
Да, отличное дополнение по приоритетам инкремента к Уроку №9! Благодарю! И, наконец, именно тут дошло про то, как действия в коде выполняются справа налево.
А разве не наоборот?
Спасибо большое, самое то для повторения перед экзаменами)
Пожалуйста!
@@karwel38 я вот сдал благодаря тому что подруга присела на мозг перед экзом повторить С++, как всегда на экзамене у меня отключился мозг и я не смог сделать простую программу, зато, зато я сдал теорию, где написал несколько примеров из этого курса, правда оценка низкая, зато проходная)
Нравится. Жму лайки регулярно. Огромное спасибо за Ваши уроки. Очень продуктивно и информативно
Спасибо за уроки, в некоторых моментах очень детальное описание помогает вникнуть даже новичку
Ты так преподаёшь буд-то работаешь в ВУЗЕ лектором по программированию, но у тебя зарплата миллион долларов и тебе не нужны никакие взятки, ты любишь своих учеников и твоя высшая цель научить безвозмезно лучшим способом. Таких бы учителей....
учителя в шараге обучают паскалю, а тут молодой человек с++ понятным языком говорит, респект
@@luathekartoshka7547 У меня в универе C#
Но нас учат говнокод, а в придачу учат очень старому г*вну
А потом все удивляются, откуда столько говнокода(
@@nyashuka такое чувство, что мы в одном вузе
Спасибо за Вашу роботу.
Хоть я и программировал, но я тоже думал. Что должно быть увеличится на 1. Спасибо за уроки.
спасибо! освежил в памяти инфу
Спасибо! Хорошие у вас уроки! Хорошо объясняете. Вижу у вас новая тематика, учите народ писать на С#, продолжайте в том же духе, я думаю, что у вас и в этой области все получится. А я пока плюсы изучу!
благодаря Вашим урокам я хоть могу учить программирование и Вы довольно таки удобно понятно объясняете
4:50 - Что происходит при вызове функции?
5:45 - Что происходит при передаче переменной а в функцию?
7:15 - Запускаем в отладчике
10:10 - Как вернуть результат (инкремент переменной а) из функции?
м, ПаСыбА
Автор ответьте пожалуйста
#функции #SimpleCode #урокипрограммирования
честно говоря, я никак не могу понять, почему там 1, а не 2
@@tuparelax7419 Переменная "а" одной функции и пременная "а" другой функции - это две разные переменные, никак друг с другом не связанные. Представь, ты посылаешь "1", как значение, в другую фунцию, внутри которой происходит суммирование. А дальше ты свою же "1" выводишь на печать, а не результат суммирования.
Поэтому правильнее было бы сначала a = Foo(a); и потом только cout
Волшебство просто, префиксный инкремент озадачил меня, я то поставил на паузу и почти всё сделал правильно, просто поставил а++; перед return a; что чуть сложнее, вообще подобные хитрости очень интересны, ибо всегда хочется сократить код до минимума.
Я знаю, что такое передача по значению, но чем больше смотрю, тем больше нравится. Особо5 спасибо за отладчик.
Ахах Спасибо огромное я даже правильно ответил благодаря первому ролику))) никак не мог понять эту тему в колледже, ибо учитель у нас так себе её объяснил, а у тебя с первого ролика все понял, спасибо большое и за настроение)))
Господи, Сергей. я в 5м классе, совершенно ничего не знал, но теперь знаю благодаря тебе. Спасибо, Сергей.
Ну как продвижение?
@@mastermaths4929 ну он уже в 6м классе:)
Ку, как дела в 6?
@@cancent бля я на третьем курсе
@@poliglice заебист тебе?с 5 класса за год на 3 курс, как успехи?
Спасибо огромное за урок!
Вот этот материал оказался чуть посложнее для восприятия, посмотрим следующий ролик, думаю, разберусь окончательно)
Наконец кто-то сумел доступным языком рассказать про кастомные функции. Крутой курс, за такое качество положено брать большие деньги, а тут он бесплатно лежит
кстати, а ты не хотел бы сделать курс по алгоритмам и структурой данных?
я бы с удовольствием посмотрел, мне очень нравится как ты объясняешь, и было бы топ
2, но так как вы предлагаете предугадать, то скорее всего 1.
Спасибо за ваш курс
Спасибо за урок!
Огромное спасибо за видео. Позволю себе процитировать предыдущего оратора: * Самые понятные, видео уроки по c++, на всём (RU) youtube *))) . От себя добавлю: Хотелось бы побольше ДЗ.
Спасибо, очень понятно!
Спасибо за старания))) отличные уроки
Пожалуйста! =)
Отдельное спасибо за уроки
Очень помогло 👌🔧
Лайкос😄
Результаты размышлений про то что выведет cout
Блин.
:D
Как приятно на душе, когда правильно угадал, даже нет, сам догадался, что там будет 1, а не 2, вот прям бальзам на душу
автор красавчик, мой респект тебе
Спасибо за уроки, привет из БГУИР-а :)
Спасибо! Подписался!
Спасибо!
Спасибо большое за твои видосы
спасибо огромное)))
спасибо большое
Иными словами, не имеет значения, как называются эти две переменные. В данном случае названия просто совпали ("a"). Но могли быть "a" и "b", например.
Запись от 01.06.2020 года: Как же меня за***ала писанина конспектов для технаря и военкомат. Я вырвался!!! Спасибо за урок, хоть и меня тянут много "факторов" вниз, приходиться превозмогать и побеждать самого себя для решения проблем и задач. Спасибо!!!)
Как успехи?
спасибо
Возвращаемое значение функции можно сразу вывести на экран, без присваивания переменной value (если мы не планируем сохранять результат работы функции):
cout
Думаю, в консоли будет 1. Предполагаю, что вопрос связан с классами памяти, областью действия идентификатора и т. п. Читал, но пока не очень разобрался в вопросе.
Почему префикс и постфикс не работают со счетчиком for? Если бы например была бы переменная "a=1", и мы бы написали в функцию "for(;a
for(; a
короче, предсказываю, что ты просто так по приколу отправил *а* в функцию и функция такая
*спасибо, теперь у меня есть число увеличенное на 1... и что мне делать с ним? ничего? окей*
2:20
Так как у функции возвращающее значение "void", то она не будет возвращать "a++", и в итоге я не знаю что это даст, но знаю, что "a" не увеличится
1, т.к. функция создаст локальную переменную.Ну в питоне было так, тут, думаю, также)
Аргументы - переменные, существующие в зоне видимости функции, поэтому при вызове мы передаём не нашу переменную, а её значение т.е присваиваем переменной функции значение. В данном случае значение переменной a в точке входа не изменится, ведь изменили мы значение переменной функции, а не точки входа
Здравствуйте! Уроки очень ефективные но практики мало, можете какую-нибудь литературу посоветовать для самостоятельного розяснения? Буду очень благодарен!
запутал. но заставил задуматься.
👍
Я человек в программировании новый, но, мне кажется, что функция будет наращивать свое значение до тех пор, пока не закончится память. Либо просто прибавит единицу)
Изначально предполагал что выведит 2, но потом вспомнил прошлый урок, там для вывода тела функции (поправите если не прав) вы написали cout
1 наверное. Мы объявили a внутри функции, инкремент в теле функции. Все выполняется внутри, наверное, с наружним не контактируя
Мне кажется, что правильнее сказать в этом видео, что в данном случае в функцию передается не сама переменная, а только ее значение. Сама же переменная остается такой, какой была. А функция просто создаёт новую переменную, приравнивая её значение к значению той переменной, которую мы указали в параметрах функции при её вызове.
Наверное... ещё проще говоря, аргумент в параметрах функции,
например func(int a)
обозначается для использования этого обозначения внутри этой самой же функции func. Это как идентификатор для принимаемого значения
Не знаю какой там будет вывод, раньше пробовал себя в программировании, но забил, но думаю так: Скорее всего, так как мы в main создаём обычную локальную переменную, то у функции foo не будет доступа к этой переменной, у неё есть доступ только к тем данным, что мы в неё передали, или уже в ней объявили. Тоесть в функции можно объявлять любые переменные, вне зависимости, есть ли они в main-е, ведь они не могут взаимодействовать с переменными друг друга, у них только свои локальные переменные. Соответственно так как функция ничего не возвращает, то функции передастся значение переменной а, она выполнит свою работу, но ничего не вернёт, а значит в переменной а в main ничего не изменится, и программа просто выведет 1.
переменная a увеличится на 1?
На 2:26 выйдет один, так как переменная а в foo() не связана с перемeнной а в main().
Я угадал в чем проблема, но 1. Чуть позже догадался что наверное функцию для вывода на писать так:типа переменная = функции (это логично ибо получается что в обратном порядке оно присвает функции значение ну кагбы копирует наверное в данном случае, но думаю понял)
И ещё была проблема с постфиксным инкрементом (до этого сам догадался), но не знал что с постфиксным проблемы такие будут \. _. /
Как приятно когда смекалочка работает в час ночи хех (не зря почитал чо она вообще возвращает Блинннннн ) (просто как я понял возвращение это скорее сохранение типа "алгоритма" который должен проигрываться других действиях)
Спасибо!
Надо кншн практика с этим хех.
После слов: "...но я вас немного огорчу..." не хватало грустной мелодии!
При передаче аргументов по значению внешний объект, который передается в качестве аргумента в функцию, не может быть изменен в этой функции. Нашел такую инфу в интернете, а разве в уроке при помощи инкремента мы не изменили ее? Или тут подразумевается, что исходное значение не меняется int a=1?
Честно говоря предполагал что будет 2, ошибся. 1)
Так из войда можно вернуть значение после того как выполнится функция?
интересно что value и int a -- разные переменные с разными названиями , но программа воспринимает "а" как "value" . видимо ей важен порядок параметра в скобочках. и ещё это объясняется тем похоже что в мейне одни переменные а в функции "фу" уже другие
Подозреваю что функция может вернуть неск значений которые можно подставить в реторне как и принять несколько параметров. И наверно ассоциировать она их будет с теми переменными у себя в зависимости от порядка введёных значений в скобках.
куда я могу обращаться если возникнут какие-то вопросы ?
Уроки хорошие, наверное самые лучшие в Ютубе. Но как обычно многие программисты часто путают понятия. В данном уроке автор перепутал понятия аргумента и параметра функции. То что находится в скобках при объявлении функции называется параметрами, а то что в теле основной программы присваивается параметрам при вызове функции аргументами. Т.е. переменная "а" в объявлении функции - параметр, при вызове из main функции этой переменной присваивается аргумент - значение переменной "а" или "value" из main.
пофиг, лучше тогда все термины на английском.
Чтобы к переменной ,,i,, прибавить 1 можно записать i++, а если прибавить 15 , тогда пишем : i +=15 . А возможно ли записать это в префиксном варианте ?
Ты путаешь инкримент и обычную арифметику.
Запись i += 15 такая же как и i = i + 15
Т.е. сначала выполняется выражение справа, потом идёт присваивание полученного результата
Спсб
Thank
Останется то же самое значение, нужно передать адрес переменной или указатель на неё
Ну, будет честно сказать что я распознал подвох, еще раз сел и подумал, и полагаю что так как мы не вернули значение a, то нам выдаст ту же единицу))
Инкремент сработал на переменную внутри функции, неожиданно
будет равна единице, т.к. ф-я ничего не возвращает, а область видимости инкремента - локальная
Я думаю, что ничего с переменной не произойдет, так как в функции изменяется локальная, а не глобальная переменная, для глобальной наверное нужно отдельно прописать ее в область видимости или что-т типо того
9:20 Автор урока только что продемонстрировал один из принципов функционального программирования)
Честно, задумался сначала, что это не будет работать. Потому что, в коде дважды объявлена переменная "а", в каждой функции. В функции main переменной "а" присвоено значение "1", оно то и будет выводиться на экран. Т.к. в функции foo не присвоено значение переменной "а" (в функции foo стоит лишь инкремен, для работы которого нужно какое нибудь значение, а его нет), то при обращении, в функции main к функции foo, мы ничего не получим. Наверно так, хотя, cout стоит только в функции main, может поэтому выводит только переменную "а" из функции main. Сейчас посмотрим.
Не угадал)))))))
1, потому что в выводе переменной написана не функция, а переременная, а функция не присваивает переменной значение, а работает единожды.
И что бы получилось 2 нужно было либо присвоить функцию переменной, либо в выводе написать эту функцию.
1
клёво че продвигаюсь как пароход
Думаю, что из-за того void функция. Так как она ничего не возвращает. + еще мы выводим а, должно быть выведена функция void.
с каждым уроком все меньше и меньше просморов, как же много людей начинают, но как мало доходят до конца...
И в последнем видео миллион просмотров😂😂 не до терпели до конца
1-
переменная основной функции)
Объявляем переменную a со значением 1 => Передаём переменную a в ф-ию => В области видимости ф-ии объявляется переменная a со значением 1 => Выводится переменная a в области видимости ф-ии main
2:28 - скорее всего переменная a увеличится на 1
value = Foo(value) - ошибка, слишком мало аргументов в вызове функции, с чем связано?
2:25 в консоль выведет 1
Объявили а=1 вызываем функцию, увеличивающую а на 1 следовательно результат - 2
2 наверное (2:24)
странно что никто не ругается что а инициализировали но не присвоили значение, видимо исключение для функции не мейн. Если я не путаю с каким то другим языком где критично чтобы присвоили значение.
То есть мейн это наверно как ствол, а другие функции это как ветки, которыми может пользоваться мейн? какова же структура с++ на макроуровне? Смотрим дальше)))
будет бесконечно цифры ?
вводится число a = 2
2:25 Думаю будет 2) но щас увидим.
2 выведет )
+
Я убрал из функции Foo( ) параметры и инкремент и результат тот же))