|
0 / 0 / 0
Регистрация: 29.03.2015
Сообщений: 58
|
|
Неясности в теории11.10.2015, 19:55. Показов 4610. Ответов 68
Метки нет (Все метки)
Здравствуйте! Объясните пожалуйста почему в параметрах функции чаще всего используют указатель на массив, а не сам массив, например, void display(int *num).
И еще один вопрос, для чего нужен знак % в данной функции:rand()%1999-999. То, что это функция заполнения рандомными числами,я знаю, но вот для чего там знак % ?
0
|
|
| 11.10.2015, 19:55 | |
|
Ответы с готовыми решениями:
68
неясности с wi-fi
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||
| 11.10.2015, 21:54 | |||||||
0
|
|||||||
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
|
| 11.10.2015, 21:57 | |
|
Добавлено через 19 секунд
hoggy,Ясно. Но это не будет компилироваться не в gcc, не потому что все остальное не полностью соответствует стандартам, а потому что у gcc'шников местами включены нестандартные фишки. Я пробовал с С++17, C++14 (В онлайн компиляторах)
0
|
|
|
|
||||
| 11.10.2015, 22:06 | ||||
|
На исходный вопрос я ответил ещё в #7. Простой массив передаётся одинаково в этих трёх случаях: (int x[]), (int *x) и (int x[N]). castaway, Вы не хотите соблюдать правила хорошего тона, о которых вспомнили?
0
|
||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 11.10.2015, 22:07 | |||
|
возможно он просто не поддерживает эту фичу. однако, это стандарт. правда не помню точно из какого. наверное с++14. можно указывать auto в лямбдах (шаблоно лямбды). ну и далее - можно указывать в обычных функциях. ну-ну.
0
|
|||
|
|
|||
| 11.10.2015, 22:13 | |||
|
Добавлено через 3 минуты
0
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 11.10.2015, 22:16 | ||
|
там фигурирует "указатель на массив". не больше, и не меньше.
0
|
||
|
|
|
| 11.10.2015, 22:35 | |
|
Согласен. Смысл моего первого ответа - передавайте по указателю, чтобы не транжирить ресурсы. И пишите одинаково, чтоб было понятно. Про ресурсы к массивам не относится, частный случай. Но вопрос был - почему чаще пишут int *x, а не то же это самое что просто массив, или нет.
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 11.10.2015, 22:39 | |
|
0
|
|
|
Модератор
|
|||
| 12.10.2015, 07:55 | |||
0
|
|||
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
||||||
| 12.10.2015, 10:08 | ||||||
|
hoggy
Вопрос castaway можно переформулировать в виде теста. Как передать массив в функцию, чтобы все побочные эффекты работы с массивом внутри функции не затронули внешний контекст? Не запрещать побочные эффекты, а скопировать массив.
P.S. Насколько я понимаю с массивами C ничего придумать не получиться, нет возможности скопировать массив, можно только передать адрес на память, где массив хранится. То есть, возникнет необходимость выполнить вручную копирование массива во внешнем контексте, а затем всё равно передавать адрес в функцию.
0
|
||||||
|
|
||||||
| 12.10.2015, 10:26 | ||||||
|
Так чтоли?
0
|
||||||
|
Модератор
|
||
| 12.10.2015, 11:21 | ||
|
Если нет желания передавать массив при помощи указателей, то можно сделать обёртку - завернуть массив в структуру или в класс. И передавать массив в функцию уже как экземпляр класса. Либо пользоваться средствами нового стандарта (C++14), как это сделал hoggy (передавать ссылку или указатель и использовать ключевое слово auto).
1
|
||
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
|
| 12.10.2015, 11:27 | |
|
Rius
Нет, это не то. Вы передали в функцию структуру, совершенно иной объект. Структура действительно скопируется, но это уже данные, определённые пользователем.
1
|
|
|
Модератор
|
|
| 12.10.2015, 11:36 | |
|
hoggy, а заполнить массив новыми значениями в такой же манере получится?
0
|
|
| 12.10.2015, 11:36 | |
|
Неясности с наследованием (C#) Неясности с функцией exit... Неясности со StrigGrid-ами Некоторые неясности с задачей Неясности в работе программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|