Передача параметров в функцию по значению. Параметры функции. Передача аргументов в функцию. #34

Поділитися
Вставка
  • Опубліковано 27 чер 2017
  • Понравилось видео или оказалось полезным? Подпишись!
    Передача параметров в функцию по значению. Параметры функции. Передача аргументов в функцию. #34
    Уроки по программированию
    Наша группа ВК smplcode
    Подписывайтесь на канал / @simplecodeit
    Инкремент и декремент. Постфиксный и префиксный. Пример. Синтаксис. C++ для начинающих. Урок #9.
    • Инкремент и декремент....

КОМЕНТАРІ • 374

  • @MoldsPro
    @MoldsPro 5 років тому +260

    Низкий поклон автору. Пожелание: хотелось бы видеокурс с большим количеством домашних заданий и их разборов.

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

      Отличное пожелание ,присоединяюсь!!!

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

      Да, пожалуйста, хотелось бы видеть больше домашних заданий с их дальнейшим разбором. ОГРОМНОЕ СПАСИБО!

    • @shamistanaliyev5678
      @shamistanaliyev5678 4 роки тому +7

      @@GattoPlayприсоединяюсь к вам,также хотелось бы увидеть создание простеньких игр с их объяснением)

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

      @@shamistanaliyev5678 Создание игр, с освещением и какой-нибудь графики с освещением, физикой тел, требует умения работы с геометрией, про создание моделей и текстур даже говорить не буду

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

      Просто в интернете найдите сайты с заданиями и там набивайте руку

  • @user-lx9mm3mn9z
    @user-lx9mm3mn9z 6 років тому +160

    отдельное спасибо за ДЗ в уроках)))

    • @sudoer4349
      @sudoer4349 5 років тому +10

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

  • @user-cv3jd6lu6q
    @user-cv3jd6lu6q 6 років тому +14

    отличная подача, нету воды вообще, все четко по делу.

  • @Ermine882
    @Ermine882 7 років тому +32

    Очередное спасибо за урок, отдельное спасибо за 1080!

  • @user-rd1hb8uf9b
    @user-rd1hb8uf9b 7 років тому +141

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

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

    Спасибо, что делишься знаниями, ты объясняешь все ОЧЕНЬ понятно и легко. Ты лучше всех моих преподов. С твоими объяснениями все стало намного легче и понятней.

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

    Да, отличное дополнение по приоритетам инкремента к Уроку №9! Благодарю! И, наконец, именно тут дошло про то, как действия в коде выполняются справа налево.

    • @nightwolf9596
      @nightwolf9596 10 місяців тому

      А разве не наоборот?

  • @elizavetakotova5294
    @elizavetakotova5294 6 років тому +73

    Спасибо большое, самое то для повторения перед экзаменами)

    • @SimpleCodeIT
      @SimpleCodeIT  6 років тому +11

      Пожалуйста!

    • @uniqueopinion2783
      @uniqueopinion2783 3 роки тому +5

      @@karwel38 я вот сдал благодаря тому что подруга присела на мозг перед экзом повторить С++, как всегда на экзамене у меня отключился мозг и я не смог сделать простую программу, зато, зато я сдал теорию, где написал несколько примеров из этого курса, правда оценка низкая, зато проходная)

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

    Нравится. Жму лайки регулярно. Огромное спасибо за Ваши уроки. Очень продуктивно и информативно

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

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

  • @nyashuka
    @nyashuka 4 роки тому +50

    Ты так преподаёшь буд-то работаешь в ВУЗЕ лектором по программированию, но у тебя зарплата миллион долларов и тебе не нужны никакие взятки, ты любишь своих учеников и твоя высшая цель научить безвозмезно лучшим способом. Таких бы учителей....

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

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

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

      @@luathekartoshka7547 У меня в универе C#

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

      Но нас учат говнокод, а в придачу учат очень старому г*вну

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

      А потом все удивляются, откуда столько говнокода(

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

      @@nyashuka такое чувство, что мы в одном вузе

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

    Спасибо за Вашу роботу.

  • @samvelvardanyan6085
    @samvelvardanyan6085 6 років тому +81

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

  • @volodymyrgutsu7011
    @volodymyrgutsu7011 6 років тому +14

    спасибо! освежил в памяти инфу

  • @user-qw2xx6ef8r
    @user-qw2xx6ef8r 5 років тому +11

    Спасибо! Хорошие у вас уроки! Хорошо объясняете. Вижу у вас новая тематика, учите народ писать на С#, продолжайте в том же духе, я думаю, что у вас и в этой области все получится. А я пока плюсы изучу!

  • @yunik7280
    @yunik7280 6 років тому +19

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

  • @user-ko8uz4ye3y
    @user-ko8uz4ye3y 3 роки тому +28

    4:50 - Что происходит при вызове функции?
    5:45 - Что происходит при передаче переменной а в функцию?
    7:15 - Запускаем в отладчике
    10:10 - Как вернуть результат (инкремент переменной а) из функции?

  • @SimpleCodeIT
    @SimpleCodeIT  7 років тому +23

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

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

      честно говоря, я никак не могу понять, почему там 1, а не 2

    • @TheWladberlin
      @TheWladberlin 4 роки тому +5

      ​@@tuparelax7419 Переменная "а" одной функции и пременная "а" другой функции - это две разные переменные, никак друг с другом не связанные. Представь, ты посылаешь "1", как значение, в другую фунцию, внутри которой происходит суммирование. А дальше ты свою же "1" выводишь на печать, а не результат суммирования.
      Поэтому правильнее было бы сначала a = Foo(a); и потом только cout

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

    Волшебство просто, префиксный инкремент озадачил меня, я то поставил на паузу и почти всё сделал правильно, просто поставил а++; перед return a; что чуть сложнее, вообще подобные хитрости очень интересны, ибо всегда хочется сократить код до минимума.

  • @aln9391
    @aln9391 6 років тому

    Я знаю, что такое передача по значению, но чем больше смотрю, тем больше нравится. Особо5 спасибо за отладчик.

  • @allo-bardo937
    @allo-bardo937 5 років тому +7

    Ахах Спасибо огромное я даже правильно ответил благодаря первому ролику))) никак не мог понять эту тему в колледже, ибо учитель у нас так себе её объяснил, а у тебя с первого ролика все понял, спасибо большое и за настроение)))

  • @poliglice
    @poliglice 4 роки тому +38

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

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

      Ну как продвижение?

    • @hot1ne22
      @hot1ne22 2 роки тому +32

      @@mastermaths4929 ну он уже в 6м классе:)

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

      Ку, как дела в 6?

    • @poliglice
      @poliglice 2 роки тому +13

      @@cancent бля я на третьем курсе

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

      @@poliglice заебист тебе?с 5 класса за год на 3 курс, как успехи?

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

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

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

    Вот этот материал оказался чуть посложнее для восприятия, посмотрим следующий ролик, думаю, разберусь окончательно)

  • @spaysertm264
    @spaysertm264 9 місяців тому

    Наконец кто-то сумел доступным языком рассказать про кастомные функции. Крутой курс, за такое качество положено брать большие деньги, а тут он бесплатно лежит

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

    кстати, а ты не хотел бы сделать курс по алгоритмам и структурой данных?
    я бы с удовольствием посмотрел, мне очень нравится как ты объясняешь, и было бы топ

  • @HmaPaYT
    @HmaPaYT 7 років тому +60

    2, но так как вы предлагаете предугадать, то скорее всего 1.

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

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

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

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

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

    Огромное спасибо за видео. Позволю себе процитировать предыдущего оратора: * Самые понятные, видео уроки по c++, на всём (RU) youtube *))) . От себя добавлю: Хотелось бы побольше ДЗ.

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

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

  • @user-lx9mm3mn9z
    @user-lx9mm3mn9z 6 років тому +2

    Спасибо за старания))) отличные уроки

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

    Отдельное спасибо за уроки

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

    Очень помогло 👌🔧
    Лайкос😄

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

    Результаты размышлений про то что выведет cout

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

    Как приятно на душе, когда правильно угадал, даже нет, сам догадался, что там будет 1, а не 2, вот прям бальзам на душу

  • @d3s1r38
    @d3s1r38 5 місяців тому

    автор красавчик, мой респект тебе

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

    Спасибо за уроки, привет из БГУИР-а :)

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

    Спасибо! Подписался!

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

    Спасибо!

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

    Спасибо большое за твои видосы

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

    спасибо огромное)))

  • @yunik7280
    @yunik7280 6 років тому

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

  • @giovannigiorgio1536
    @giovannigiorgio1536 4 роки тому +5

    Иными словами, не имеет значения, как называются эти две переменные. В данном случае названия просто совпали ("a"). Но могли быть "a" и "b", например.

  • @user-gv9px9ix9e
    @user-gv9px9ix9e 4 роки тому +2

    Запись от 01.06.2020 года: Как же меня за***ала писанина конспектов для технаря и военкомат. Я вырвался!!! Спасибо за урок, хоть и меня тянут много "факторов" вниз, приходиться превозмогать и побеждать самого себя для решения проблем и задач. Спасибо!!!)

  • @Artem-up5xw
    @Artem-up5xw 6 років тому

    спасибо

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

    Возвращаемое значение функции можно сразу вывести на экран, без присваивания переменной value (если мы не планируем сохранять результат работы функции):
    cout

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

    Думаю, в консоли будет 1. Предполагаю, что вопрос связан с классами памяти, областью действия идентификатора и т. п. Читал, но пока не очень разобрался в вопросе.

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

    Почему префикс и постфикс не работают со счетчиком for? Если бы например была бы переменная "a=1", и мы бы написали в функцию "for(;a

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

      for(; a

  • @konstantinpyshnoy1502
    @konstantinpyshnoy1502 4 роки тому +9

    короче, предсказываю, что ты просто так по приколу отправил *а* в функцию и функция такая
    *спасибо, теперь у меня есть число увеличенное на 1... и что мне делать с ним? ничего? окей*

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

    2:20
    Так как у функции возвращающее значение "void", то она не будет возвращать "a++", и в итоге я не знаю что это даст, но знаю, что "a" не увеличится

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

    1, т.к. функция создаст локальную переменную.Ну в питоне было так, тут, думаю, также)

  • @nexterpb24
    @nexterpb24 2 місяці тому +1

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

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

    Здравствуйте! Уроки очень ефективные но практики мало, можете какую-нибудь литературу посоветовать для самостоятельного розяснения? Буду очень благодарен!

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

    запутал. но заставил задуматься.

  • @chelovechek7773
    @chelovechek7773 3 місяці тому

    👍

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

    Я человек в программировании новый, но, мне кажется, что функция будет наращивать свое значение до тех пор, пока не закончится память. Либо просто прибавит единицу)

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

    Изначально предполагал что выведит 2, но потом вспомнил прошлый урок, там для вывода тела функции (поправите если не прав) вы написали cout

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

    1 наверное. Мы объявили a внутри функции, инкремент в теле функции. Все выполняется внутри, наверное, с наружним не контактируя

  • @yadmii
    @yadmii Рік тому +2

    Мне кажется, что правильнее сказать в этом видео, что в данном случае в функцию передается не сама переменная, а только ее значение. Сама же переменная остается такой, какой была. А функция просто создаёт новую переменную, приравнивая её значение к значению той переменной, которую мы указали в параметрах функции при её вызове.

    • @sleepyNovember_project
      @sleepyNovember_project 7 місяців тому

      Наверное... ещё проще говоря, аргумент в параметрах функции,
      например func(int a)
      обозначается для использования этого обозначения внутри этой самой же функции func. Это как идентификатор для принимаемого значения

  • @danlonus
    @danlonus Місяць тому

    Не знаю какой там будет вывод, раньше пробовал себя в программировании, но забил, но думаю так: Скорее всего, так как мы в main создаём обычную локальную переменную, то у функции foo не будет доступа к этой переменной, у неё есть доступ только к тем данным, что мы в неё передали, или уже в ней объявили. Тоесть в функции можно объявлять любые переменные, вне зависимости, есть ли они в main-е, ведь они не могут взаимодействовать с переменными друг друга, у них только свои локальные переменные. Соответственно так как функция ничего не возвращает, то функции передастся значение переменной а, она выполнит свою работу, но ничего не вернёт, а значит в переменной а в main ничего не изменится, и программа просто выведет 1.

  • @igorstail3672
    @igorstail3672 6 років тому +1

    переменная a увеличится на 1?

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

    На 2:26 выйдет один, так как переменная а в foo() не связана с перемeнной а в main().

  • @user-cb8ws8qx4f
    @user-cb8ws8qx4f 4 місяці тому

    Я угадал в чем проблема, но 1. Чуть позже догадался что наверное функцию для вывода на писать так:типа переменная = функции (это логично ибо получается что в обратном порядке оно присвает функции значение ну кагбы копирует наверное в данном случае, но думаю понял)
    И ещё была проблема с постфиксным инкрементом (до этого сам догадался), но не знал что с постфиксным проблемы такие будут \. _. /
    Как приятно когда смекалочка работает в час ночи хех (не зря почитал чо она вообще возвращает Блинннннн ) (просто как я понял возвращение это скорее сохранение типа "алгоритма" который должен проигрываться других действиях)
    Спасибо!
    Надо кншн практика с этим хех.

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

    После слов: "...но я вас немного огорчу..." не хватало грустной мелодии!

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

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

  • @zumaxrussia
    @zumaxrussia 6 років тому +9

    Честно говоря предполагал что будет 2, ошибся. 1)

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

    Так из войда можно вернуть значение после того как выполнится функция?

  • @shlopaiushiy-po-popke
    @shlopaiushiy-po-popke 3 роки тому +1

    интересно что value и int a -- разные переменные с разными названиями , но программа воспринимает "а" как "value" . видимо ей важен порядок параметра в скобочках. и ещё это объясняется тем похоже что в мейне одни переменные а в функции "фу" уже другие
    Подозреваю что функция может вернуть неск значений которые можно подставить в реторне как и принять несколько параметров. И наверно ассоциировать она их будет с теми переменными у себя в зависимости от порядка введёных значений в скобках.

  • @yunik7280
    @yunik7280 6 років тому

    куда я могу обращаться если возникнут какие-то вопросы ?

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

    Уроки хорошие, наверное самые лучшие в Ютубе. Но как обычно многие программисты часто путают понятия. В данном уроке автор перепутал понятия аргумента и параметра функции. То что находится в скобках при объявлении функции называется параметрами, а то что в теле основной программы присваивается параметрам при вызове функции аргументами. Т.е. переменная "а" в объявлении функции - параметр, при вызове из main функции этой переменной присваивается аргумент - значение переменной "а" или "value" из main.

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

      пофиг, лучше тогда все термины на английском.

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

    Чтобы к переменной ,,i,, прибавить 1 можно записать i++, а если прибавить 15 , тогда пишем : i +=15 . А возможно ли записать это в префиксном варианте ?

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

      Ты путаешь инкримент и обычную арифметику.
      Запись i += 15 такая же как и i = i + 15
      Т.е. сначала выполняется выражение справа, потом идёт присваивание полученного результата

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

    Спсб

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

    Thank

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

    Останется то же самое значение, нужно передать адрес переменной или указатель на неё

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

    Ну, будет честно сказать что я распознал подвох, еще раз сел и подумал, и полагаю что так как мы не вернули значение a, то нам выдаст ту же единицу))

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

    Инкремент сработал на переменную внутри функции, неожиданно

  • @focuschuvak1364
    @focuschuvak1364 6 років тому

    будет равна единице, т.к. ф-я ничего не возвращает, а область видимости инкремента - локальная

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

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

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

    9:20 Автор урока только что продемонстрировал один из принципов функционального программирования)

  • @sebastianvolmon5850
    @sebastianvolmon5850 7 років тому

    Честно, задумался сначала, что это не будет работать. Потому что, в коде дважды объявлена переменная "а", в каждой функции. В функции main переменной "а" присвоено значение "1", оно то и будет выводиться на экран. Т.к. в функции foo не присвоено значение переменной "а" (в функции foo стоит лишь инкремен, для работы которого нужно какое нибудь значение, а его нет), то при обращении, в функции main к функции foo, мы ничего не получим. Наверно так, хотя, cout стоит только в функции main, может поэтому выводит только переменную "а" из функции main. Сейчас посмотрим.

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

    1, потому что в выводе переменной написана не функция, а переременная, а функция не присваивает переменной значение, а работает единожды.

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

      И что бы получилось 2 нужно было либо присвоить функцию переменной, либо в выводе написать эту функцию.

  • @fflyingfalk9112
    @fflyingfalk9112 7 років тому +3

    1

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

    клёво че продвигаюсь как пароход

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

    Думаю, что из-за того void функция. Так как она ничего не возвращает. + еще мы выводим а, должно быть выведена функция void.

  • @denchick9028
    @denchick9028 4 роки тому +5

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

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

      И в последнем видео миллион просмотров😂😂 не до терпели до конца

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

    1-
    переменная основной функции)

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

    Объявляем переменную a со значением 1 => Передаём переменную a в ф-ию => В области видимости ф-ии объявляется переменная a со значением 1 => Выводится переменная a в области видимости ф-ии main

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

    2:28 - скорее всего переменная a увеличится на 1

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

    value = Foo(value) - ошибка, слишком мало аргументов в вызове функции, с чем связано?

  • @eldorado7566
    @eldorado7566 6 років тому

    2:25 в консоль выведет 1

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

    Объявили а=1 вызываем функцию, увеличивающую а на 1 следовательно результат - 2

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

    2 наверное (2:24)

  • @shlopaiushiy-po-popke
    @shlopaiushiy-po-popke 3 роки тому

    странно что никто не ругается что а инициализировали но не присвоили значение, видимо исключение для функции не мейн. Если я не путаю с каким то другим языком где критично чтобы присвоили значение.
    То есть мейн это наверно как ствол, а другие функции это как ветки, которыми может пользоваться мейн? какова же структура с++ на макроуровне? Смотрим дальше)))

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

    будет бесконечно цифры ?

  • @funtemisfoxy6452
    @funtemisfoxy6452 7 років тому

    вводится число a = 2

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

    2:25 Думаю будет 2) но щас увидим.

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

    2 выведет )

  • @kibson32
    @kibson32 6 років тому

    +

  • @Victor-vx4br
    @Victor-vx4br 5 років тому

    Я убрал из функции Foo( ) параметры и инкремент и результат тот же))