170 похожих чатов

То есть неверно сказать, что переменная - это автоматически разыменовывающийся

указатель?...

22 ответов

3 просмотра

Их родство скорее со ссылками, кмк, имело бы смысл рассматривать, но вообще (почти применимо).

Каждый указатель - это переменная, но не каждая переменная указатель.

Sergey Anisimov
Не каждый, разумеется: (T*)nullptr.

Разумеется есть rvalue и прочая compile-time эзотерика, но если человек спрашивает "что такое указатель", то вряд ли ему сейчас стоит об этом знать.

Niceguy- Автор вопроса
Sergey Anisimov
Их родство скорее со ссылками, кмк, имело бы смысл...

Как раз такая мысль появилась после изучения ссылок

LaG1924
Разумеется есть rvalue и прочая compile-time эзоте...

1. Категории значений - отнюдь не эзотерика, они есть в каждом выражении. 2. Человек не спрашивает "что такое указатель".

Niceguy
Как раз такая мысль появилась после изучения ссыло...

Указатель – это как индекс в глобальном массиве памяти, а переменная – как значение одного или нескольких элементов вместе. Вы же не ставите равно между элементом массива и его индексом?

Ссылка - это как раз таки автоматически разыменовывающийся указатель.

LaG1924
Ссылка - это как раз таки автоматически разыменовы...

Очень грубо, но пусть будет так. Сейчас здесь сразу поправят.

Niceguy- Автор вопроса
LaG1924
Ссылка - это как раз таки автоматически разыменовы...

ну и как я понимаю, ссылка - это альтернативное название переменной, поэтому я и спросил про переменную, как автоматически разыменовающийся укзаатель

Ссылка - тоже переменная. И она действительно существует в памяти, это не просто синтаксичекий сахар, чтобы одну ячейку памяти (ака переменную) разными именами называть. Однако, если сравнивать ссылки и указатели, то ссылки - синтаксический сахар для указателей, который не допускает NULL значения.

LaG1924
Ссылка - тоже переменная. И она действительно суще...

И, опять же, это тоже не абсолютное положение: гарантий ее реального существования в памяти нет (и в этом смысле о ней действительно можно думать в некоторых ситуациях как о псевдониме): она даже не объект, программа не может получить ее адрес, в связи с чем пронаблюдать различия в поведении.

Sergey Anisimov
И, опять же, это тоже не абсолютное положение: гар...

Гарантий того, что написанный код сложения двух чисел будет действительно складывать два числа, а не просто подставит результата их сложений - тоже нет. В сложное время живём. Действительно ли надо настолько переусложнять ментальную модель, чтобы ее изучение заняло годы, а она все равно иногда различалась с действительностью?

LaG1924
Гарантий того, что написанный код сложения двух чи...

Изучите достаточно хорошо - не будет различаться. И на этот вопрос я однозначного ответа не решусь дать, но, видимо, решаетесь Вы (и ответ - "нет"), раз из этих соображений предлагаете утверждения с допущениями как абсолютные. Ваше право, разумеется, но причин даже не указывать наличие "крайних случаев" (которые еще и могут большую значимость иметь на практике) я, честно говоря, не вижу.

LaG1924
https://isocpp.org/wiki/faq/references#overview-re...

Ваш источник, кстати, оговаривает: > Underneath it all, a reference i to object x is typically the machine address of the object x. > typically И дополнительную повторяющую предостерегающую от подобного представления сноску предлагает.

Sergey Anisimov
Изучите достаточно хорошо - не будет различаться. ...

Есть академический интерес, и практический. Вы предоставляете правильный ответ, который потребует изучения, я же назвал грубое приближение к реальности, которое позволит использовать это знание гораздо быстрее. Пусть изучающий сам решит, что для него важнее сейчас - учиться писать правильный код, или просто писать код (плохой, не имеющий права жизни в чистовой кодовой базе, но который закроет практическую потребность прямо сейчас). Я бы с радостью сказал использовать Ваш ответ, а мои слова вообще забыть, но мы живём не в идеальном мире, увы.

Sergey Anisimov
Ваш источник, кстати, оговаривает: > Underneath it...

Да. Так и надо делать. Но в 98% случаев использования ссылок оно все же будет работать так, как легче понимать принцип их работы программисту на С. P.S. вопрос ко всем: как давно вы видели нетривиальное использование ссылок (или даже писали такой код 😱)? P.P.S. T* p = nullptr; T& r = *p;

LaG1924
Есть академический интерес, и практический. Вы пре...

Ничего не имею против грубого приближения, пока оно сопровождается соответствующим дисклеймером, о чем и написал. Иначе изучающий рискует даже не узнать о наличии альтернативы (или узнать несвоевременно).

Sergey Anisimov
Ничего не имею против грубого приближения, пока он...

Можно считать всю нашу дискуссию эдаким дисклеймером) А потребность в альтернативе точно даст о себе знать, когда в различных (частых) краевых случаях ожидаемое поведение будет не соответствовать происходящему.

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Добрый день подскажите пожалуйста может кто то сталкивался с ошибками Sentry 22.10.0 развернутым из helm чарт в Kubernetes? Изначально 3 дня назад очень стало много событий ух...
Tire4 Finist Devops
1
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
почому оно не работает?
Vi Chapmann Chapmann
19
Так а кто может спарсить всех участников чата? Идишники
Magic
18
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
Есть вопрос: допустим есть железка с каким-то интерфейсом(допустим usb), но как по этому интерфейсу железкой управлять неизвестно, прог нету, а управлять очень хочется надо. К...
Mixail Frolov
15
Карта сайта