|
2 / 2 / 0
Регистрация: 24.11.2016
Сообщений: 77
|
|
Использование ссылок и обычных имен переменных08.07.2017, 23:26. Показов 6047. Ответов 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 отличаются от обычных ссылок на странице? Инициализация обычных статических переменных Отличие обычных переменных и глобальных
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время?
Никакой пенсии. Никакого нового. . .
|
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю
Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы
Кратко. . .
|
|
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем
**Полевые заметки о двухнедельной совместной работе**. . .
|
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|