Передача массива в функцию. Как передать массив в функцию. C++ для начинающих. Урок #35.

Поделиться
HTML-код
  • Опубликовано: 28 июн 2017
  • Понравилось видео или оказалось полезным? Подпишись!
    Передача массива в функцию. Как передать массив в функцию. C++ для начинающих. Урок #35.
    Если вам нравятся мои уроки, вы хотите поддержать меня и развитие канала, то можете сделать это тут! =)
    www.donationalerts.ru/r/simple...
    или тут
    / simplecode
    Уроки по программированию
    Наша группа ВК smplcode
    Подписывайтесь на канал / @simplecodeit

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

  • @Ermine882
    @Ermine882 6 лет назад +246

    Спасибо за урок! Сергей хотелось бы попросить Вас к каждому уроку (или как посчитаете нужным) давать 2-3 домашних задания, можно без видео, просто в описании. Так будет больше практики. P.S Очень радует частота выхода уроков!

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

    Огромное спасибо! Если б не ваши уроки - давно бы зашел в тупик по обучению!!!

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

    1:00 - Объявляем массив
    1:45 - Функция заполнить массив
    3:22 - Передача массива с помощью указателя
    4:00 - Что произойдет при обращении к элементам массива переданными по указателю?
    5:20 - Вывод заполненного массива
    6:10 - Вызов функции вывода массива
    6:55 - Вызов функции заполнения массива
    8:50 - Что произойдет при передаче массива по указателю?
    9:45 - Что произойдет после заполнения массива?
    11:00 - Выполнение функций в отладчике

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

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

  • @mr.warpunch6007
    @mr.warpunch6007 2 года назад

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

  • @deonst7979
    @deonst7979 Год назад +2

    Мне нравится фишка с аналогиями, реально легче воспринимать информацию)
    Спасибо за контент!

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

    Хочу сказать огромнейшее спасибо за Ваши видео!!!!!! Наконец-то смогла понять эту тему, супер доступное объяснение!))))))))

  • @user-kz8pw3qf6i
    @user-kz8pw3qf6i 6 лет назад +1

    Спасибо, очень понятные виде. Нигде не встречал таких простых и понятных уроков. Продолжай в том же духе)

  • @Fernando-zo1xm
    @Fernando-zo1xm 5 лет назад +240

    мой сельский мозг сейчас взорвется. Но все-равно спасибо! Когда-то я выберусь из этого дерьма!

    • @user-xq5hu5pr4d
      @user-xq5hu5pr4d 5 лет назад +16

      Чувак, не дрейф! Человек очень доступно выложил материал! Если что не ясно прочти одну - вторую книжку. Страуструпа рекомендую.

    • @Alex-hs8xj
      @Alex-hs8xj 5 лет назад +17

      самый простой способ делать одно и тоже пока не станет понятно, "записать на подкорку" так сказать

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

      @@Alex-hs8xj УДАЧИ!

    • @ybersecurity9940
      @ybersecurity9940 5 лет назад +3

      Привет ну как идет изучение С++?

    • @namesurname6385
      @namesurname6385 4 года назад +8

      И как? Выбрался?

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

    Сергей! Ты СУПЕР! Мои аплодисменты!

  • @user-on2nb5fl8p
    @user-on2nb5fl8p 2 года назад +1

    Блестящий Урок! Всё по полочкам!

  • @den3v
    @den3v 5 лет назад +76

    Хорошие уроки. Чуток затянуты но на скорости 1.75 входят отлично ! Спасибо!

    • @Evgeny..
      @Evgeny.. 3 года назад +9

      Скорость 2х норм заходит))

    • @reefly9838
      @reefly9838 3 года назад +9

      @@Evgeny.. заходит в два раза больше информации 8)

    • @Anton-mp6lc
      @Anton-mp6lc 2 года назад +3

      @Stalker from Pripyat по большой части зависит от человека )

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

      @@Anton-mp6lc Hi Антон

    • @Anton-mp6lc
      @Anton-mp6lc 2 года назад

      @@Imgui_seller hi past

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

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

  • @user-do1lt6uh3e
    @user-do1lt6uh3e 11 месяцев назад

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

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

    Какие же классные у Вас уроки.

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

    Блин чувак, это классно, я еще не все уроки посмотрел, но ты делаешь уроки не просто в стиле "Hello World", а еще и разжевываешь как это работает, что работает и не работает в конкретных случаях, это здорово, я сам начинал на Delphi, на си некоторое не понимаю как делать, кажется геморно, но тут все понятно, СПАСИБО...

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

    Благодарю за прекрасный курс 😊

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

    Спасибо огромное за труды)!

  • @Evgeny..
    @Evgeny.. 3 года назад

    Как всегда спасибо за отличный урок!

  • @andry3283
    @andry3283 6 лет назад +5

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

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

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

  • @cvetochek3101
    @cvetochek3101 Месяц назад

    Тяжело понять, вроде пон, а вроде и нет
    Пересматриваю по пару раз чтобы дошло. Спасибо за уроки, вы просто мой спаситель

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

    спасибо за урок, очень помог!

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

    Все очень круто и понятно. Спасибо, но хотелось бы ДЗ, побольше! Для закрепления материала!

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

    за день до экзамена самое то,спасибо!

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

    Всё понятно и задан вектор на изучение указателей :)

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

    Спасибо за знания!

  • @thats_kentuki
    @thats_kentuki 2 года назад +9

    Интересный факт, в void FillArray массив будет весить 4 байта на 32 разрядной и 8 байт на 64 разрядной, так как является указателем, что равнозначно (int *). Обычный (int) будет почти всегда весить 4 байта. Поэтому ничего страшного если у вас массив весит 8 байт. Просто придется делать немного другие вычисления, если вдруг.

    • @laorium
      @laorium Год назад +1

      Я использовал sizeof и сидел полчаса думал, почему у меня не работает вывод массива. Спасибо тебе большое

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

    Спасибо Сергей. Очень не хватает Домашних заданий.

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

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

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

    Это все хорошо.Тяжеловато для понимания.Побольше бы конкретных примеров-зачем эти функци-не только cout.

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

    Огромное спасибо очень сильно помогло!

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

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

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

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

  • @jyxaz1782
    @jyxaz1782 6 лет назад +33

    Еще раз здравствуйте, Сергей! Огромное спасибо вам за такие полезные уроки, видно, что рассказываете максимально информативно и понятно. Очень рад, что нашёл ваш канал! С одной стороны нужно как можно сильнее распространять ваши видео, но с другой стороны, из-за этого будет создаваться конкуренция в мире программирования xD, ведь контент у вас ну уж очень годный. На С++ некоторые вещи уже относительно знаю, кроме: классов, полиморфизма, наследования и т.д, хотя понятно, что это еще далеко-далеко не весь С++. И теперь понятно у кого буду обучаться по данным темам :). И не планируете ли вы в будущем снять создание какого-нибудь приложения, игры на С++ только не консольного, а в окне?

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

    Спасибо, лучший!)

  • @arthurr172
    @arthurr172 6 месяцев назад

    броу, после видоса ощущаю только уважение

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

    кстати, arr[n] - это синтаксический сахар для *(arr+n), где arr - адрес первого элемента массива, а n - это количество байт памяти, выделяемое для типа данных массива, умноженное на то число n, которое является индексом нужной ячейки массива

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

    Спасибо!

  • @Firuz26
    @Firuz26 6 лет назад +3

    Спасибо

  • @User-vz5ti
    @User-vz5ti 6 лет назад +2

    благодарю

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

    Имя аргумента функции не обязательно должно совпадать с именем параметра в ее описании. А лучше даже наоборот делать их разными и относиться к параметрам, как к обычным заглушкам. И про последнее, имя массива - указатель на его первый элемент (он указывает на элемент arr[0], т.е. на первую ячейку в которой находится целочисленное значение весом 4 байта)

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

      очень ценное дополнение

    • @LocoLya
      @LocoLya 6 месяцев назад

      у меня оно весит 8 байта

    • @user-vw1iq6hm6p
      @user-vw1iq6hm6p 5 месяцев назад

      + кому реально интересно, посмотрите лекции Тимофея Хирьянова по алгоритмам и структурам данных на с++, там это вполне хорошо объясняется

  • @dimashevchenko572
    @dimashevchenko572 Год назад +1

    Какой же ты крутой

  • @user-cb8ws8qx4f
    @user-cb8ws8qx4f 2 месяца назад

    Очень понятные пояснения!
    Сам сижу (ставлю на паузу) и думаю почему так происходит!
    И вроде мыслю правильно!
    По идеи в случае с функцией рандома чисел надо было бы вернуть значение (будь это переменная и подобное), но в случае массивов оно автоматически указывает на них при работе функции (работая с той функцией которую мы указали)
    Но будь это переменная её значение пришлось бы возвращать чтобы сохранить и после присваивать переменой эту результат работы функции ибо в случае с переменной оно просто копирует значение из-за чего приходиться писать чуть больше кода с возвратом.
    А в массиве оно сразу берет "адрес" массива если можно так сказать и проводит операции в нем...
    В параметрах как я понял задается тип данных с которым мы будем работать (будь то массив/переменая и тд) и внутри функции мы указываем что будет происходить с этими индефикаторами.
    Когда мы активируем функцию оно смотри типа:синтаксис параметра утчен, и можно работать с данными строками ибо они подходят для работы с ними...
    Блинннн описать это сложно, но это чуть легче чем кажется... Суть я вроде уловил кншн... Хех

    • @user-cb8ws8qx4f
      @user-cb8ws8qx4f 2 месяца назад

      С моей граматикой второклассника блэээт
      Ааааа жесть

  • @sudoer4349
    @sudoer4349 5 лет назад +33

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

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

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

    • @mr.warpunch6007
      @mr.warpunch6007 2 года назад +2

      Завистливые преподаватели, которые не могут так доходчиво давать материал!

  • @Gnotwtf
    @Gnotwtf Месяц назад

    С++ для меня уже как Скайрим. Как же это уже ненавижу и как безумно мне это нравится снова и снова))

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

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

    • @user-qz9yi5hj3s
      @user-qz9yi5hj3s 6 лет назад

      Как настроить компилятор в Визуал студио 2017, у меня F10, F11 работает без учёта циклов,- сразу переменной присваивает конечный результат?

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

      @@user-qz9yi5hj3s f7

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

    спасибо

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

    Видео записано в мой день рождения

  • @user-ri2tx1eu7i
    @user-ri2tx1eu7i 5 лет назад +13

    10:41 Бибипка!

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

    поправьте, если ошибаюсь, но мне кажется, sizeof, в силу того, что при передачи массива в качестве аргумента, функция берет ссылку на первый элемент, выдает именно то, что выдает, а именно 4 байта, то есть размера int

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

    Сергей, спасибо за уроки!
    Такой вопрос. Можно ли из функции вызвать другую функцию? И как это реализовывать, если возможно?

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

      Да, вполне спокойно можно вызывать функции внутри другой функции. Можно даже эту же самую функцию вызывать внутри себя (это называется рекурсия). Реализовывается так же, как и вызов функции в main, для компилятора это такая же функция, как и любая другая функция

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

      В более ранних уроках это было, например srand (time (NULL));

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

    огромное спосибо вас за уроки . Вот у меня есть вопрос а как передовать переменную типа string другой функции пробую как на видео пишет run time error

  • @user-qz9yi5hj3s
    @user-qz9yi5hj3s 6 лет назад

    Как настроить компилятор в Визуал студио 2017, у меня F10, F11 работает без учёта циклов,- сразу переменной присваивает конечный результат? Спасибо.

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

    Спасибо за грамотное объяснение материала! Однако мне не удается передать двумерный массив в функцию. Подскажите пожалуйста как это сделать))

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

      Я сейчас столкнулся с этой проблемой

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

      Ты разобрался?

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

      @@Redmigarichuchichello Такая же проблема

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

      @@egogrigs2563 я разобрался, могу на сололерн ссыль дать

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

      @@Redmigarichuchichello и как это сделать?

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

    Не все компиляторы передают в функцию указатель на массив, если массив статичный. Ведь есть же возможность (или нет?) указать размер передаваемого массива в функцию.

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

    Спасибо за уроки! Сергей, объясните пжл, вы передаете массив в функцию изменив имя массива, откуда функция знает, что это именно этот массив? (чего то я не уловил момента)

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

      Не совсем, смотри, в функции main()
      Мы передаём на место arr[] наш massiv когда вызываем эту функцию.
      То есть: PrintArray(massiv, SIZE)

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

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

  • @user-kz8pw3qf6i
    @user-kz8pw3qf6i 6 лет назад +1

    Будут ли уроки по WinAPI?

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

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

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

      Bartholomew Defender все так же как и в уроке только появится еще один параметр отвечающий за количество столбцов матрицы

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

    Сергей простите процитирую Вас: "....передать массив в функцию.Зачем нам это может понадобиться?Ну, к примеру для того , чтобы написать функцию которая будет выводить содержимое массива. " Что-то не очень пример для объяснения "для чего?". Вот в самом конце урока35 массив занимал в памяти 40б, а в функции 4б(по известной причине).Т.е. можно сказать, что это причина почему может понадобиться передача массива в функцию? Хотелось бы на каких-то конкретных примерах, как может пригодиться тот или иной урок.Спасибо за уроки.

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

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

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

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

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

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

  • @user-ur3mc6hb5d
    @user-ur3mc6hb5d 10 месяцев назад

    для питонистов, функция вывода массива как в питоне
    void print_array(int arr[], const int size)
    {
    cout

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

    Здравствуйте. Я пытался поэкспериментировать с функциями и типом данных char, я видел на одном из сайтов как с помощью двух или трёх функции можно объявить переменные в одной функции дать содержимое в другой и вывести на экран, я написал функцию marko и использовать тип char по синволам marko и вывести через функцию mail но не вышло, я гуглин чтоб выяснить почему не сработала но нечего не нашел. Подскажите что делать.

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

    Музыка на заднем фоне просто легенда

  • @user-et1cr4yj4c
    @user-et1cr4yj4c 4 года назад +1

    Текст программы:
    #include "iostream"
    using namespace std;
    void main()
    {
    setlocale(0, "");
    int line;
    int column;
    cout column;
    ////////////////////////////////
    /*Выделение памяти под двумерный масив*/
    int** mass = new int* [line];
    for (int i = 0; i < line; i++)
    {
    mass[i] = new int[column];
    }
    ////////////////////////////////
    ////////////////////////////////
    /*Рандомное заполнение масива*/
    for (int i = 0; i < line; i++)
    {
    for (int j = 0; j < column; j++)
    {
    mass[i][j] = rand()%20;
    }
    }
    ////////////////////////////////
    ////////////////////////////////
    /*Вывод масива в консоль*/
    for (int i = 0; i < line; i++)
    {
    for (int j = 0; j < column; j++)
    {
    cout

  • @Yje
    @Yje 9 месяцев назад

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

    • @andrewcyberman
      @andrewcyberman 6 месяцев назад

      Автор забросил канал, если есть какие то проблемы с кодом и ошибки всегда есть chat gpt.

  • @user-io3tc2cx7v
    @user-io3tc2cx7v 5 лет назад +4

    Дошло, для чего был нужен такой долгий и нудный предыдущий урок! Спасибо!

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

    Мне пришлось const int SIZE = 10; вынести из main ещё и в заголовок. Т.о. у меня их теперь две. Иначе из main константа была не видна функциям определённым в заголовке.
    А теперь main видит только свою SIZE, а глобальную верхнюю видят только функции.
    А почему у вас она видна всем? Ведь она не глобальная, если объявлена только в main ?

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

    Респект из Армении Сергеи
    а какая музыка играет под видео?))

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

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

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

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

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

    здравствуйте можете пожалуйста снять видео на тему keybd_event

  • @user-gy9rq7cq4g
    @user-gy9rq7cq4g 6 лет назад

    Сергей, объясните пожалуйста, зачем вы создаете 2 цикла for, если в первый цикл можно поместить cout после определения значения ячейки?
    Стоит ли мне привыкнуть делать именно 2 цикла?

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

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

    • @user-gy9rq7cq4g
      @user-gy9rq7cq4g 6 лет назад

      #SimpleCode Хорошо, спасибо большое

  • @wasony.126
    @wasony.126 4 года назад

    👍👍👍

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

    Передаётся указатель на первый элемент массива arr = *arr[0]. Поэтому sizeof в функции возвращает 4 - это первый элемент, а не 40

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

      можно проверить, создав массив типа double.
      тогда в мэйне весь массив будет весить 80 байт
      а в функции так и останется 4 байта, хотя должен был быть 8.

  • @supermole4654
    @supermole4654 5 лет назад +6

    А с 2-мерным массивом как?

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

    1 а нельзя внутри функции разыменовать массив и по нему уже sizeof взять?
    2 если массив по ссылке передавать, то тогда наверно будет работать?

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

    Спасибо за урок, но у меня остался непонятым вопрос: почему в функции FillArray и PrintArray в аргументах стоит size с маленькой буквы и это работает? Ведь с++ чувствителен к регистру.

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

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

    • @esc.xilence
      @esc.xilence Год назад

      Привет, разобрался с этим? (просто я тоже немного не понимаю)

  • @chelovechek7773
    @chelovechek7773 Месяц назад

    👍

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

    Такой вопрос. Когда мы работаем с переменными, то по умолчанию функция работает со значениями, а не с адресами. (Т.е чтобы работать с адресами там в параметрах функциях вводится указатель, а при объявлении в скобах пишется амперсант, ну вы поняли).
    А когда мы работает с массивами, то он работает сразу с адресом. Это типо фича?

  • @Smile-hy5cd
    @Smile-hy5cd 2 года назад

    Доброго времени суток,подскажите пожалуйста,а сам синтаксис двухмерного массива в функции будет выглядеть так? void FillArray(int arr[ ],const int size,const int coll) или void FillArray(int arr[ ] [ ] ,const int size,const int coll)?

    • @user-qu5ch6rl4f
      @user-qu5ch6rl4f 2 года назад +1

      Он слукавил, сказав что двумерный в функции обьявляется так же, как двухмерный. Пишут что только левая мерность допускается без параметра, а остальные должны быть явно заданы.
      arr [ ][ ] - не правильно.
      arr [ ][100] - правильно
      arr [ ][COL] - правильно при условии что col будет задан ДО обьявления функции.

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

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

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

    где же ты видео записываешь? во многих видосах я заметил, что бибикают машины xD

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

    Такая проблема, я переписываю ваш код для обучения. Но в visual studio пишет, что невозможно использовать тип данных int, в функции типа void. Из-за чего может появляться эта ошибка? И как возможно её устранить?

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

    Есть код - приведен ниже. Ввод массива осуществляется функцией fillArr. Как сделать так чтобы при выводе массива функцией printArr выводилось кроме элементов массива еще и имя массива который создаем.???
    Имеется ввиду не один массив а несколько разных массивов в одной программе????
    #include
    #include
    using namespace std;
    //Функция. Создание и вывод одномерного массива с помощью функции
    void fillArr(int arr[], const int size)
    {

    for (int i = 0; i < size; i++)
    {
    arr[i] = rand() % 20;
    }
    }
    void printArr(int arr[],int size)
    {
    for (int i = 0; i < size; i++)
    {
    cout

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

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

  • @user-pk6lu9iy9v
    @user-pk6lu9iy9v Год назад +1

    Мне данный код выдает ошибку. must return a value. Почему у вас не вспринимает как ошибку без return?

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

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

    • @Genesis14185
      @Genesis14185 3 дня назад

      Константа нужна чтоб при написании кода не сменить его значение по ошибке.А константа выдаст ошибку.И код быстро исправите

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

    Передача двумірного масива в функцію:
    #include
    using namespace std;
    const int ROW = 6;
    const int COL = 7;
    void FillArray (int arr[ROW][COL], const int row, const int col)
    {
    for (int i = 0; i

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

      тогда в мейне их убери

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

      @@wh1ter3bel36 згоден, спочатку запостив код, а потім прибрав те з мейн, але вже не став тут коректити)

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

      Дякую. Я вже де тільки не шукав.

    • @user-om4rp1to2u
      @user-om4rp1to2u 3 месяца назад

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

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

    Обратил внимание, что в параметрах функции константное значение написано не заглавными буквами. Это корректно, если да объясните почему. Заранее благодарю!

    • @user-cp123pc5tk8d
      @user-cp123pc5tk8d 6 лет назад +2

      Александр Ткачев , это корректно с технической стороны даже если создать глобальные константы прописными буквами. Просто хорошим тоном считается, константы и дефайны именовать именно заглавными буквами.

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

      Он в локальную переменную функции size передал значение константы SIZE, если технически описывать

  • @Dark-vs7jy
    @Dark-vs7jy 5 лет назад +3

    Вот такое же решение с двумерным массивом (если кому-то нужно)
    #include
    #include
    using namespace std;
    const int size=10;
    const int row=10;
    void fillarray(int arr[size][row],const int size,const int row)
    {
    for(int i=0;i

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

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

    • @metalhead-mh1864
      @metalhead-mh1864 2 года назад

      @@yuziazumi3563 а как можно правильно писать?

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

      @@metalhead-mh1864 вот это ты конечно ответил классно, год прошёл)
      Я уже и не помню того, что писал, но всё перечитал. Сейчас я поступаю в вуз и немного преисполнился в кодинге, могу сказать, что человек сверху написал очень непрактичные функции. Во-первых в вызове функции в качестве аргументов он указывает массив, размеры которого регулируют ранее объявленные константы, а также те же самые константы, которые УЖЕ вписал в размеры массива. Странный ход, который тут не нужен. Во-вторых на практике его код не подойдёт ни под какие ситуации, т.к. конечному пользователю его кода скорее всего нужно будет заполнять массивы разных размеров, а в его коде заполнять можно только заранее подготовленные размеры массива. Было бы правильно указать в аргументе функции указатель на динамический массив, чтобы конечный пользователь смог заполнять любые массивы.

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

      @@metalhead-mh1864 так он ещё и два раза объявил одни и те же константы. Сначала глобально, потом в главной функции.

    • @metalhead-mh1864
      @metalhead-mh1864 2 года назад

      @@yuziazumi3563 я вот сейчас сделал так же как и он, но не объявил два раза значение глобальных отправил в main. Короче говоря в самом начале объявил const int ROW ,const int COL, a в main написал const int row = ROW, const int col = COL. Пока могу только так 😂

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

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

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

    Не знаю, может был уже такой вопрос,но
    Что делать, если у нас 2 разных массива? Один из них придется заполнять в ручную, или писать 2 функции, или еще что то?

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

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

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

    Все это хорошо конечно, вот только как двумерный массив передать?

    • @user-gc5td9zq3b
      @user-gc5td9zq3b 5 лет назад +1

      @Алексей Румянцев аргумент arr[ ][ ], не воспринимается. Причем он где то говорил, что кол-во колонок должно быть фиксировано. Если писать arr[R ][C] , то после using namespace std; нужно задавать эти константы (до функции). Тогда все работает. Правильно ли так или нет ХЗ, как по другому не знаю.

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

      @@user-gc5td9zq3b , сам интересовался этим вопросом.
      Нашел на одном форуме объяснение: Чтобы передать двумерный массив в функцию, нужно первые квадратные скобки оставить пустыми, а во вторые записать число. Таким образом компилятор понимает размер каждого дополнительного массива.
      Пример: void FillArray(int arr[][5])

  • @user-cr2nd1re4l
    @user-cr2nd1re4l День назад +1

    Подскажите, каким сочетанием клавиш можно так быстро цикл for заполнить?

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

    Блин, раньше изучал Пайтон, и ему там вообще по-барабану что за переменные и как их возвращать. Тут же...

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

      Производительность vs Простота.

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

    4:30 Это будет как 2 массива, которые в любом случае будут идентичными???

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

      Это один и тот же массив(я так понял) т.к. в функцию вы передаём указатель на массив в функции мейн и они идентичны , а не созданная копия этого массива

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

    Может кто подсказать, установил Visual Studio 2017 по примеру автора канала, при первом запуске проэкта пишет "возникли ошибки зборки", уже все перепробывал в инете ответов нет( хеееелп

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

      Аналогичная проблема

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

      качай Visual Studio для Desktop у меня все норм

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

      @@ayras7932
      качай Visual Studio для Desktop у меня все норм

  • @user-qb9xw5pq9o
    @user-qb9xw5pq9o 3 месяца назад

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