|
-80 / 27 / 1
Регистрация: 14.03.2015
Сообщений: 812
|
||||||
Передача аргумента в функцию по значению, по ссылке, по указателю: в чём концептуальная разница?11.02.2016, 15:47. Показов 10958. Ответов 72
Метки нет (Все метки)
Доброго всем здравия, прошу прощения, что достал уже всех этой темой.
Вызываем функцию помещаем в нее саму переменную, значение переменной НЕ меняется в main() функции. Пожалуйста не используйте в объяснении бранные эпитеты.
0
|
||||||
| 11.02.2016, 15:47 | |
|
Ответы с готовыми решениями:
72
Передача параметров в функцию по значению, по ссылке и по указателю Передача параметров в функцию по значению, по ссылке или по указателю Передача параметров по указателю, ссылке и значению |
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,430
|
||||||||
| 12.02.2016, 02:47 | ||||||||
|
Добавлено через 6 минут
1
|
||||||||
|
Модератор
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
|
||||||||
| 12.02.2016, 03:16 | ||||||||
|
http://rextester.com/OSAX83428
6 6Добавлено через 8 минут volatile и увидите что-то новое.
0
|
||||||||
|
|
|||||||
| 12.02.2016, 07:09 | |||||||
0 1 (и в данном примере decltype использован честно, без сложных выражений).
2
|
|||||||
|
Комп_Оратор)
|
||||||
| 12.02.2016, 10:54 | ||||||
![]()
Хотя, лично я согласен, как довод это годится. Но хотелось бы ещё.
0
|
||||||
|
245 / 139 / 53
Регистрация: 23.11.2015
Сообщений: 394
|
||||||||||||
| 12.02.2016, 11:06 | ||||||||||||
|
вот уже неделю читаю все подряд на эту тему.
вопрос очень животрепещущий и расширяющий сознание. вопрос о том, что на концептуальном уровне "ссылка != авторазименованный константный указатель" можно считать закрытым и доказанным. также я читал, что код вида
0
|
||||||||||||
|
Комп_Оратор)
|
||
| 12.02.2016, 11:48 | ||
|
А когда объявлена ссылка, то ожидается именно тип на который она ссылается. Напрашивается вывод о том, что передача по ссылке не объявляет ссылку вообще, а ставит компилятор в известность о том, что передается не копия. А он реализует как ему удобно. Через указатель, например. Именно тут и видна разница в "передача по указателю" и "передача по ссылке". Потому что передаётся то всегда указатель, а в случае со ссылкой передаётся что-то именно "по ссылке". Поэтому я и говорю о том, что не имея собственных объектов (и как следствие таких признаков как размер, формат, операции), ссылка ещё и передаётся не так как передаются другие
0
|
||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||
| 12.02.2016, 16:04 | ||
Определение через мн-во значений и операций выглядит немного детсадовским, как по мне.Лучше такое: Тип - это метка, используемая системой типов для доказательства некоторого поведенческого свойства программы. Кстати с точки зрения системы типов, ссылка - это адрес (абстрактный указатель (это не плюсовый термин в данном контексте) на память). И над ней возможно проводить операции присваивания и разыменования (как пример).
1
|
||
|
Комп_Оратор)
|
|||||
| 12.02.2016, 16:36 | |||||
|
Эт я. ![]() Дык, любые определения это бред, конечно. Если хотя бы одно фундаментальное, - бред. Тут не поспоришь. Кстати, за: Я написал: размер, формат, допустимые операции ( и тут надо было ещё: множество значений). Что до: Не остаться в этой... И т.д. Я за! Пусть будет поведенческое свойство признака концептуального качества. Это прозрачно и сразу хорошо.
0
|
|||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|
| 12.02.2016, 17:15 | |
|
IGPIGP, почитал тут. Не особо хочу встревать напрямую. Лучше позадаю наводящие вопросы:
Вот есть в С++ такая штука: void. Вот он как, по-вашему, тип или нет?
0
|
|
|
Комп_Оратор)
|
||
| 12.02.2016, 18:12 | ||
![]() Я хорошо понимаю, что оспариваю устоявшуюся точку зрения. Но я не пойму её другим способом. Проверено. Много чего писанного прочёл, но не достаточно мне этого.
0
|
||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 12.02.2016, 18:17 | ||
|
1
|
||
|
Комп_Оратор)
|
||
| 12.02.2016, 18:30 | ||
|
void это в коде обозначение неизвестного типа для указателя. И это совершенно уникальная штука. У void нет союзников кроме указателя на void. Практически любое разумное движение с которым требует явного приведения. Ссылка это другое. Но похожи они жутко. Как и все уродцы. Если у функции объявлен параметр T& то ожидается Т. void это более цельный и бескомпромиссный вариант. Тут нет половинчатости и колебаний: если параметром объявлен void, то ничего не просто не нужно передавать, а ничего нельзя передать. Речь не о указателе, а о void как таковом. Кстати, а Вам приходилось видеть void как таковой? ![]() И ещё. Тут приписывали Страуструпу сентенции о том, что всё что поименовано имеет тип. У void нет имён и это называют типом. Из чего можно сделать вывод, что тип это всё. И всё это тип. И всё это всё + void. И всё.
0
|
||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||||
| 12.02.2016, 18:48 | ||||
![]() Это значит, что эта концепция слишком узкая, чтобы органично вместить в себя это явление. Поэтому, нужно расширить концепцию (посмотрите на определение, которое дал ct0r). А вот ваши возражения жутко мне напомнили вот это:
0
|
||||
|
Комп_Оратор)
|
|||||||||
| 12.02.2016, 19:14 | |||||||||
|
Я поставил Вам + за пример для кунст-камеры. Я повторю, что если void это аргумент в пользу того, что ссылка, это тоже тип, то моя уверенность в обратном только укрепляется. Вот забавный пример, хоть и не в тему:
0
|
|||||||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||||
| 12.02.2016, 20:00 | ||||
Сообщение было отмечено hoggy как решение
Решение
0
|
||||
|
Комп_Оратор)
|
||||||
| 12.02.2016, 21:46 | ||||||
![]() Вы нашли аргумент вроде того, что: Хотите ещё один горбыль, - держите! Ну держу и что? Ещё раз спасибо, кстати. Я знал о нём, но не думал говорить в данном контексте. Это же наследие С и если подтянутся ребята оттуда, то тема станет как ёлка. С бенгальскими огнями. Нет. Я не обиделся, хотя не ожидал подобного сравнения. Если Вы перечитаете рассказ, то может быть поймёте. А обидеться на узость мышления мне трудно. Я знаю своё мышление. И я как обычный человек обижаюсь на то, что попадает в цель. Так что пожал плечами да и всё.
0
|
||||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||||
| 12.02.2016, 22:32 | ||||
Да, у ссылки нет собственного объекта. Но тип не обязан представлять объект. Он представляет множество значений (это кстати еще одно определение). В данном случае, с наличии значения нет возможности сомневаться, т.к. ссылка - инициализируется.
0
|
||||
|
Комп_Оратор)
|
|||||||
| 12.02.2016, 22:54 | |||||||
Я пытался говорить об этом. Я вижу, насколько поведение ссылки как Предлагаю мир.
0
|
|||||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||||
| 12.02.2016, 23:17 | |||||
|
Кроме того, * ссылка играет роль при разрешении перегрузки. Перегрузка в С++ - возможна только по типам. * ссылка играет роль в специализации шаблона (и быть указана как параметр-тип шаблона), специализировать шаблон можно константами времени компиляции и типами. * ссылка может являться возвращаемым значением, в качестве возвращаемого значения при описании функции всегда указывается его тип. * ссылка может являться аргументом sizeof, typeid, в операциях преобразования static_cast, dynamic_cast и т.д. Согласно грамматике языка:
2
|
|||||
| 12.02.2016, 23:26 | |
|
0
|
|
| 12.02.2016, 23:26 | |
|
Передача параметров функции по значению, ссылке и указателю Передача аргумента в функцию а не по указателю
Передача аргументов в функцию по ссылке и указателю Передача по указателю и по ссылке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|