|
2 / 2 / 0
Регистрация: 24.11.2016
Сообщений: 77
|
|
Указатели и ссылки: в чем разница08.07.2017, 18:55. Показов 12838. Ответов 85
Метки нет (Все метки)
0
|
|
| 08.07.2017, 18:55 | |
|
Ответы с готовыми решениями:
85
Ссылки vs указатели - в чем разница?
в чем разница? массивы и указатели строк |
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|||
| 09.07.2017, 20:35 | |||
|
Ты же требуешь не показать размер занятый ссылкой, а измерить его запихав саму ссылку в sizeof. А память в структуре наверно барабашка съел.
0
|
|||
|
Заблокирован
|
||||
| 09.07.2017, 20:47 | ||||
|
0
|
||||
|
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
|
|
| 09.07.2017, 20:55 | |
|
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|||||
| 09.07.2017, 21:00 | |||||
|
0
|
|||||
|
Заблокирован
|
|||
| 09.07.2017, 21:09 | |||
|
А то мы таким образом договоримся до того, что padding-и являются объектами, ведь они занимают место.
0
|
|||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 09.07.2017, 21:36 | ||
|
А договоримся мы до того, что структура толстеет от сырости. Ну раз уж потребителей памяти у нее внутри нет, а сама память почему-то расходуется, остается только сырость винить.
0
|
||
|
Заблокирован
|
|
| 09.07.2017, 21:39 | |
|
Renji, в общем, я так понимаю, подтверждения того, что "ссылка является объектом" не будет.
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 09.07.2017, 21:45 | ||
|
Ну а доказательств того что структура с ссылкой больше структуры без ссылки, потому что ссылка память жрет - да, не будет. Признаю, возможно что память кушает барабашка, почему-то появляющийся там же где ссылки.
0
|
||
|
Заблокирован
|
|||
| 09.07.2017, 21:49 | |||
|
0
|
|||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 09.07.2017, 21:57 | ||
|
А "подмена понятий" это когда "невозможно непосредственно вытрясти из компилятора сколько он потратил на ссылку", подменяется на "компилятор не выделяет память под ссылку".
0
|
||
|
Заблокирован
|
|||
| 09.07.2017, 22:13 | |||
|
0
|
|||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 09.07.2017, 22:18 | ||
|
От того как стандарт обзовет занятые ссылкой байтики, они в свободные байтики не превратятся.
0
|
||
|
Заблокирован
|
|||
| 09.07.2017, 22:38 | |||
|
Добавлено через 10 минут Отсюда не следует, что если что-то не занимает определённый объём памяти одновременно с объектом, то это что-то — объект; это элементарный закон логики. Если ты думаешь, что следует — у тебя явно проблемы с мышлением. Купи себе учебник по логике.
0
|
|||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|||
| 09.07.2017, 22:43 | |||
|
Ты где в этой цитате видишь "по стандарту ссылка==объект"? Ну а что себе купить - подумай сам.
0
|
|||
|
Заблокирован
|
||
| 09.07.2017, 22:49 | ||
|
Какие кто вкладывает смыслы в термин "объект" в своей голове — я не собираюсь догадываться. Для меня важно только значение этого термина. Кликните здесь для просмотра всего текста
Впрочем, чем смысл отличается от значения ты вряд ли знаешь.
0
|
||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 09.07.2017, 23:01 | ||
|
0
|
||
|
Неэпический
|
|
| 10.07.2017, 00:46 | |
Сообщение было отмечено gru74ik как решение
Решение
Renji, ссылка и указатель отличаются именно фундаментально на уровне языка.
![]() Выделим различия, которые так или иначе присутствуют: * ссылка должна быть обязательно инициализирована, указатель не обязан; * нельзя сделать ссылку на "нулевой объект" в корректной программе, указателю может быть nullptr; * ссылку нельзя "переназначить", указатель - можно; * синтаксис с ссылками проще читать; * указатель - адрес, ссылка - псевдоним; * мы не можем без proxy-чего-то взять указатель на временный объект, однако создать ссылку на такой объект можем; * ссылкой можно продлить время жизни временного объекта, указателем - нет; * указатель всегда занимает память (не берем в расчет оптимизации), для ссылки данный критерий неспецифицирован вовсе, т.е. если мы сможем настроить компилятор так, чтобы он вообще ничего не вырезал, то вырезать указатель он не сможет, а вырезание ссылки - законное поведение, т.к. она может законно не занимать память; * нельзя содать массив ссылок, массив указателей - можно; * нельзя сделать ссылку на ссылку, указатель на указатель - можно; * нельзя сделать указатель на ссылку, но ссылку на указатель можно; * с помощью указателя будет проблематично обозначить "ненужный далее" объект; * в шаблонах нужно четко понимать различия ссылок и указателей, эти различия могут существенно повлиять на код. * пока печатал, возможно, что-то забыл. Спать пора.
4
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||
| 10.07.2017, 01:29 | ||||||||
|
и это много где применяется. например, вот такой кейс:
можно передавать её в аргументах. её нельзя читать. я сейчас с планшета. так что не могу привести явных примеров кодом. но вот рецепты: 1.1 делаем поле класса ссылкой. смотрим sizeof класса, и обращаем внимание, 1.2 что ссылка чего то, да весит. делаем сильное предположение - компилятор профигачил ссылочное поле, как авто-разыменовывающийся указатель. 1.3 далее по смещению от this, с учетом типов полей и выравнивания, получаем адрес референсного поля. 1.4 вписываем в память поля адрес другой переменной. ПРОФИТ???!!!! 2.1 создаем обычную локальную ссылку где нибудь на стеке. 2.2 создаем функцию-детектор. она должна быть элипсисом (с тремя точками) 2.3 передаем вторым параметром ссылку. 2.4 получаем доступ к второму параметру через стандартные сишные макросы при этом тип аргумента определяем как указательный. 2.5 меняем значение по указателю, и убеждаемся: значение оригинального объекта корректно изменилось. а значит компилятор реально профигачил ссылку в аргументах элипсиса, как обычный указатель. 2.6 по аналогии с полем класса вписываем по значению указателя новый адрес. 2.7 ПРОФИТ??? оба способа - UB в чистом виде. сработает, только если не дать компилятору чего нибудь там с оптимизировать. в однофайловом проекте компилятор запросто может профигачить inline подстановками все места использования, например.
0
|
||||||||
|
Заблокирован
|
|||
| 10.07.2017, 01:37 | |||
|
0
|
|||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||||
| 10.07.2017, 01:42 | ||||
|
0
|
||||
| 10.07.2017, 01:42 | |
|
Указатели и ссылки c++
Указатели и ссылки Ссылки и указатели Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|