Ссылки vs указатели - в чем разница?21.11.2015, 20:04. Показов 17082. Ответов 150
Метки нет (Все метки)
Навеяно соседней темой. Не понимаю в чем разница, хотя несколько раз честно пробовал почитать на эту тему, правда без должного внимания и усердия. Зато программировал на ассемблере и чистом С, понимаю абстракцию "адрес ячейки памяти" и "размер типа в байтах", с арифметикой указателей и указателями на указатели сложностей вроде не испытываю
Есть переменная, если она не регистровая - то лежит в какой-то ячейке памяти (или нескольких, зависит от разрядности памяти и структуры типа переменной), адрес этой ячейки (ака указатель) я могу запоминать в другую переменную типа указателя, передавать/возвращать ее из функций, инкрементировать/декрементировать для движения по массиву переменных (если я его предварительно нарезал в той области памяти конечно), разыменовывать и получать/изменять значение. Вроде все. При чем тут термин "ссылки"? А еще оказывается бывают смартпоинтеры, умные указатели и прочие страшные слова
0
|
|
| 21.11.2015, 20:04 | |
|
Ответы с готовыми решениями:
150
в чем разница? массивы и указатели строк |
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
|
| 26.11.2015, 13:02 | |
|
Evg
Использование ссылок в C++ без использования оптимизации, всё равно, что брачная ночь без невесты. Ссылки специально оговариваются стандартом как некоторая абстракция без уточнения конкретной реализации. Если передавать параметры по ссылке на неизменяемые данные, то компилятор может провести оптимизацию для данной платформы: когда надо передать через указатель, а когда можно и нужно -- скопировать. Мы не почувствуем разницы, но и не рискуем вляпаться в дыры "преждевременной оптимизации". Именно возможности "оптимизации по необходимости" для управляемых языков позволяют им быть сегодня почти такими же быстрыми, как и низкоуровневые языки.
0
|
|
|
|
|||
| 26.11.2015, 13:18 | |||
|
Если ты хочешь писать эффективный код, ты должен понимать, в какой реальный код машины выливается та или иная конструкция и как с ней отработает компилятор (может или не может оптимизировать и в какой мере). Пока ты живёшь на уровне абстракций, у тебя нет возможности думать обо всех вещах, следовательно, ты не можешь реально оценить/управлять эффективность работы своего кода
0
|
|||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 26.11.2015, 13:22 | ||
|
a = b - c; выглядит красивше, чем a = &b - &c;
2
|
||
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
||
| 26.11.2015, 13:28 | ||
|
А я гораздо лучше разбираюсь в абстракциях предметной области, чтобы написать макроязык.
0
|
||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 26.11.2015, 13:30 | ||
|
0
|
||
|
Комп_Оратор)
|
||||||||
| 26.11.2015, 13:45 | ||||||||
![]() Добавлено через 8 минут
0
|
||||||||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
| 26.11.2015, 13:47 | |
|
0
|
|
|
|
|||
| 26.11.2015, 14:43 | |||
|
3
|
|||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 26.11.2015, 15:02 | ||
|
Однако такая новая сущность, как перегрузка операторов, введена, по сути, только для того, чтобы было красивше (ну, или удобнее).
0
|
||
|
Комп_Оратор)
|
||
| 26.11.2015, 15:14 | ||
|
Красота требует ссылок. Красота спасёт стек! Красота страшно эффективная сила.
1
|
||
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
||
| 26.11.2015, 15:24 | ||
|
0
|
||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 26.11.2015, 15:48 | ||
|
0
|
||
|
|
||||
| 26.11.2015, 16:14 | ||||
|
0
|
||||
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
|||
| 26.11.2015, 16:28 | |||
|
Как она реализована? Не знаю! В одном месте программы компилятор может реализовать её указателем, в другом копией, в третьем -- квантовым запутованием. Абстракция может быть реализована огромным количеством способов и компилятор, опираясь на то какая операционная система, какое железо и т.п. может сделать правильный выбор реализации в конкретной точки программы. Это центральное преимущество JIT компиляции, которое уже сегодня даёт возможность на C# написать код столь же быстрый, что и на С++. То есть, чтобы обогнать приложение под Windows на C# придётся приложить несоразмерные усилия. Вот мощь абстракции!
2
|
|||
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
||||||
| 26.11.2015, 17:03 | ||||||
|
Вот так абстрагируешься, абстрагируешься, а потом смотришь и понимаешь, что не фига не понимаешь и приходится нарушать абстракции.
0
|
||||||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 26.11.2015, 17:07 | ||
|
Еще одно подтверждение того, что красивое и полезное вещи в чем-то схожие.
0
|
||
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
|
| 26.11.2015, 17:18 | |
|
daslex
Если везде понатыкать побочных эффектов, то можно любой код сделать нечитаемым. В данном примере fr не определяет абстракцию, так как ей невозможно пользоваться без знания внутренних деталей. Вот как раз такие ситуации, когда начинают мутить воду: я вот тут кусочек памяти сэкономлю, а здесь пару тактов выиграю... в результате приводят к коду, который полон утечек памяти, еле ползёт и его невозможно поддерживать.
0
|
|
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
|
| 26.11.2015, 17:25 | |
|
Да ладно. Там как раз вообще ничего знать не надо. Достаточно знать конечные результаты.
Вы яростно оперируете понятием абстракция, абстрагировавшись от определения абстракции.
0
|
|
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
|
| 26.11.2015, 17:38 | |
|
daslex
fr не синоним переменной x или произвольной переменной, или своего аргумента. fr была бы синонимом счётчика, если бы возвращала новое состояние. int fr(const int& x); В противном случае Вы нарушаете абстракцию, нарушая инкапсуляцию. P.S. Смоделировать абстракцию с побочными эффектами вообще не самая простая затея. Прежде всего следует рассмотреть все варианты с иммутабельными данными.
0
|
|
| 26.11.2015, 17:38 | |
|
Указатели и ссылки [С++]
Ссылки и указатели Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Теория всего 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: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы
Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
|
|
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока
Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
|
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
|
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат»
Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
|
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
|