|
2 / 2 / 0
Регистрация: 24.11.2016
Сообщений: 77
|
|
Использование ссылок и обычных имен переменных08.07.2017, 23:26. Показов 6374. Ответов 82
Метки нет (Все метки)
Добрый вечер, у меня такой вопрос. Может быть он покажется довольно неинтересным вам, но мне просто надо понять кое-что.
Ссылка - это дополнительное имя для объекта. Имя объекта ссылается на его адрес. Я правильно понимаю, что когда мы обращаемся к имени ссылки сначала мы получаем ее адрес, на который ссылается ссылка (содержащийся в оригинальном имени переменной), а далее значение? А имя переменной также ссылается на некую область памяти, только вот при обращении к ней, мы сразу получаем конкретно значение? Спасибо.
0
|
|
| 08.07.2017, 23:26 | |
|
Ответы с готовыми решениями:
82
Использование имен предопределенных объектов в качестве имен переменных Использование переменных вместо имен таблицы и полей в SQL-запросах Использование длинных имен переменных увеличивает вес файла с программой? |
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|||
| 18.07.2017, 03:38 | |||
|
Другой вопрос что никакой практической ценности это разрешение не несет. Компилятору и так никто не запрещает сделать оптимизацию выкидывающую любую локальную переменную, а то и весь код с ней работающий. Если же ссылка является не статическим полем структуры, то такая оптимизация попросту невозможна, ввиду того что значение полей на стадии компиляции неизвестно (было бы известно, их бы static сделали).
1
|
|||
|
Неэпический
|
|
| 18.07.2017, 03:45 | |
|
Renji, ссылки - отдельный языковой механизм со своими правилами и возможностями,
делать из них простой "авторазыменовывающийся указатель" глупо. ![]() И для компилятора оно тоже не так. Компилятор знает о ссылках и о их возможностях. В конце концов оно если и превращается в указатель, то не в C++ коде и код тот к c++ не имеет уже никакого отношения.
3
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|||
| 18.07.2017, 04:27 | |||
|
Впрочем, в большинстве случаев детали низкоуровневой реализации ссылок действительно не критичны.
0
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 18.07.2017, 06:56 | ||
|
ссылка - есть результат разыменовывания указателя. отсюда - колоссальное количество мест, где фигурируют ссылки, которые гарантированно не приводят к косвенному обращению к объектам.
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||||
| 18.07.2017, 08:29 | ||||||||||||
|
потому что: 1. есть синтаксический сахарок, который полностью их имитирует. 2. есть наблюдаемое и ожидаемое поведение, связанное с инициализацией.
выглядит как утка. крякает как утка. плавает как утка. что тут нужно понимать? понятно, что конструкторы фундаментальных типов - не более чем сахарок для единообразия того безобразия, что творится в шаблонах. главное не налажать:
1
|
||||||||||||
|
Любитель чаепитий
|
|||
| 18.07.2017, 08:38 | |||
![]() понятно, что у них есть всё для имитации конструкторов и даже деструкторов. но их надо отличать, я считаю. ) а т.к. там явно указан тип int, то термин "копирующий конструктор" там не подходит, скорее просто "копирование".
1
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 18.07.2017, 08:55 | |||
|
шаблоне итак доставляет. если ещё начать пасти что тут у нас фундаментальное, и чем оно различается, да нафиг нужно. закон един для всех. независимо от цвета кожи, вероисповедания, классовой принадлежности, и собственной фундаментальности. лучше воспринимать дефолтный конструктор, как unspecified behavior, дабы не делать предположений, которые делать не нужно. и сразу проще станет жизнь.
0
|
|||
|
Заблокирован
|
||
| 18.07.2017, 13:23 | ||
|
0
|
||
|
Комп_Оратор)
|
|||
| 18.07.2017, 15:35 | |||
Автор языка говорит буквально: << (константный) указатель, при каждом использовании которого происходит разыменование>> а потом сурово предупреждает: << надо помнить, что ссылка в отличие от указателя не является объектом, над которым можно выполнять операции>> Думаете он не понимает, что если указатель при каждом использовании разыменовать, то доступа к такому указателю нет и уже именно поэтому ни о каких операциях над ним не может быть и речи? То есть: - Вы только подкрадётесь (он - ссылко-указатель сидит тихо, будто вас и не видит), и как только кинетесь на него чтобы использовать, а он р-р-р-аз и разименовался. У вас в руках объект. Он (автор языка) понимает, что такой указатель не дастся никогда и никому как указатель и уже поэтому нельзя применить к нему никакие операции (как к ссылко-указателю). Только к объекту можно. Но выразить такое поведение словами он не в силах. Держу пари, что если бы он рискнул засветиться под нейтральным ником в подобном обсуждении, с подобными высказываниями, то мало бы ему не показалось. В общем этот предмет достаточно сложно выразить словами как таковой. (imho)
0
|
|||
|
Заблокирован
|
|
| 18.07.2017, 17:11 | |
|
IGPIGP, наивно полагать, что выступающие против сравнения ссылок с указателями не в курсе, как ссылки реально реализуются. Пекутся исключительно о том, чтобы у новичков не возникало каши в голове.
1
|
|
|
Неэпический
|
||
| 18.07.2017, 21:01 | ||
|
Но что-то я не вижу ни у кого стремления рассматривать переменную с такого ракурса. Так почему же ссылки нужно рассматривать через более низкую реализацию, или объяснять ссылки с помощью другой сущности? Когда говорят, что ссылка - это "указатель, при каждом использовании которого происходит разыменование", то просто стараются объяснить что-то новое на основании какой-то знакомой сущности. А стоит ли так делать, особенно если учитывать, что такое объяснение отстраняет нас от изучаемого языка и уносит в другую сторону? Прежде чем ссылка станет "разыменовынным указателем" (если станет), будет проверена правильность и семантика использования ссылки, и ни о каких указателях речи вообще не идет. Это именно отдельный механизм, и рассматривать его нужно как отдельный механизм. Не по теме: Порой кажется, что это всё заговор C'шников. :D Если уж на то пошло, то почему бы не объяснить классы с помощью теории струн? Ведь все знают, что не существует никаких указателей.
1
|
||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|||
| 18.07.2017, 22:10 | |||
|
0
|
|||
|
Комп_Оратор)
|
||||||
| 18.07.2017, 22:38 | ||||||
|
Я думаю, со словом "глупость" ты погорячился, но признавать не хочется. Вот утверждать то, что авторазыменовывающийся указатель вдобавок не доступен как указатель, это таки свойство математика (гуманитария). Хотя метру простительно, конечно. Добавлено через 10 минут Я гуманитарий в меньшей степени чем технарь и буду с этим спорить. Иначе ни как.
0
|
||||||
|
Неэпический
|
||||
| 19.07.2017, 09:55 | ||||
Ссылка как указатель, который автоматически разыменовывается: адрес <- указатель <- ссылка.Ссылка как отдельный механизм, основанный на адресации памяти: указатель -> адрес <- ссылка.Ну и зайдем прямо к нему на сайт и смотрим:
0
|
||||
|
Комп_Оратор)
|
||||
| 19.07.2017, 11:54 | ||||
|
Что касается разных возможностей, то нет таких возможностей предоставляемых ссылкой, которые не предоставлял бы указатель. Но не наоборот. Я думаю речь об этом. Хотя это не касается "глупости" от Б.С. как таковой.
0
|
||||
|
Неэпический
|
|||||||
| 19.07.2017, 12:19 | |||||||
1
|
|||||||
|
Комп_Оратор)
|
||||||||
| 19.07.2017, 13:09 | ||||||||
|
Добавлено через 4 минуты
0
|
||||||||
| 19.07.2017, 13:25 | |
|
Не по теме:
Кликните здесь для просмотра всего текста
Не по теме: Croessmah, существуют ещё сектанты из секты "Массивов не существует, это просто сахар над указателями". Не знаю даже, кто хуже, они или участники секты "Ссылки это указатели".
0
|
|
|
Любитель чаепитий
|
|||||||
| 19.07.2017, 13:27 | |||||||
![]()
0
|
|||||||
| 19.07.2017, 13:27 | |
|
Удалить из имен обычных файлов (regular file) все цифры Чем ссылки тега nav отличаются от обычных ссылок на странице? Инициализация обычных статических переменных Отличие обычных переменных и глобальных
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
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
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение 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 и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|