|
2 / 2 / 0
Регистрация: 24.11.2016
Сообщений: 77
|
|
Указатели и ссылки: в чем разница08.07.2017, 18:55. Показов 12366. Ответов 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++
Указатели и ссылки Ссылки и указатели Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса
Калибровка параметров симбиотической модели: технический обзор
Содержание:
Введение
Постановка проблемы
Технические аспекты реализации
Процесс внедрения изменений
|
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0»
https:/ / ibb. co/ NnkGpfMd
Представленная интегрированная схема описывает непрерывную нелинейную. . .
|
|
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы
### Аннотация
Представлено исследование по разработке агентной модели микоризной. . .
|
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики
Контекст
Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
|
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии
Введение
Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
|
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np
class PlantAgent:
def __init__(self, name, strategy, initial_biomass):
self. name = name
self. strategy = strategy # "greedy" (широколиственные) или. . .
|