PTR, LNK.

Тема в разделе "WASM.ZEN", создана пользователем Indy_, 4 авг 2017.

  1. Fail

    Fail Active Member

    Публикаций:
    0
    Регистрация:
    14 мар 2012
    Сообщения:
    503
    Инде, вы страдаете гомофобией штоле?:blush2::laugh1:
     
    Последнее редактирование модератором: 6 авг 2017
  2. njeen

    njeen Active Member

    Публикаций:
    0
    Регистрация:
    26 мар 2017
    Сообщения:
    138
    Адрес:
    Ташлинск
    Указателем является адрес, лежащий в ячейке памяти.
     
  3. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    Согласно опыту пользования ЯП:
    1. Ссылка не допускает арифметики указателей. Все попытки модифицировать ссылку приводят к модификации объекта, на который она ссылается.
    2. Ссылку нельзя изменить (то есть, нельзя изменить адрес, на который она ссылается).
    3. Ссылка либо ссылается на существующий объект, либо имеет значение null (в определённых ЯП). Указатель может содержать в себе произвольное значение до тех пор, пока он не понадобится.

    С точки зрения lowlevel ссылка - просто синтаксически засахаренный указатель.
     
  4. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    njeen,

    > Указателем является адрес, лежащий в ячейке памяти.

    Скорее корректное значение адреса есть указатель. Это значение может быть не в памяти, а в регистре.

    SadKo,

    Смотрите. Есть какое то значение в памяти. Оно не является указателем, ничего не адресует. Если для адреса, по которому расположено это значение(указатель) имеется релок, то это значение - указатель. Не смотря на то, был он загружен или нет(были обращения к этой переменной).
    Адрес этой переменной с указателем это ссылка ?
     
  5. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    Информация о местоположении указателя в Relocation - это больше на ссылку смахивает.
    Теперь понятно к чему вы клоните. Если с выбором между "указатель" и "ссылка" вы испытываете серьёзные затруднения, то можно поступить проще: в начале статьи дать определение того, что вы будете понимать под термином "указатель" и того, что вы будете понимать под термином "ссылка". Тогда и неоднозначность трактовки сойдёт на нет.
     
  6. njeen

    njeen Active Member

    Публикаций:
    0
    Регистрация:
    26 мар 2017
    Сообщения:
    138
    Адрес:
    Ташлинск
    Здесь имелась в виду обобщенная память. Регистры - тоже ячейки памяти, только в процессоре. Адрес не обязан быть корректным. Любое численное значение может быть интерпретировано как адрес.
     
  7. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Indy вы не на том форуме спросили.
    Ответ прост сообщество не разделяет понятия указатель и ссылка.
    Указатель это просто. Есть адрес это табличка на доме, а указатель эта табличка на дороге со стрелкой.
    Указатель от слова кажет. Поэтому это слово понятнее.
    А вот ссылка непонятно. Но проблема в том, что большинство думает что знает. Скорее всего вам скажут что это ссылка.
    Дать своё определение не получиться. Людей вы не переубедите они уже представили некоторый образ в своей голове и будут над вами смеяться.

    Советую просто придумать новое слово для описания статьи.

    Идея использовать понятие слабый и сильный указатель мне тоже не нравиться. Однако пока это лучшее.
     
    Indy_ нравится это.
  8. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.615
    Адрес:
    Russia
    RefMyName LABEL BYTE ; ссылка
    MyName BYTE 'Rockphorr'

    MyPointer DWORD offset(MyName) ; указатель

    на сколько я понимаю общепринято считать так. если хотите городите свои определения

    написал на основе этого текста https://ru.wikipedia.org/wiki/Ссылка_(C++)
     
  9. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.329
    Rockphorr,
    В ассемблере вообще нет разницы между указателем и ссылкой. Различаются они только во время компиляции высокоуровневого сорца, т.е. это чисто синтаксическая тема и говорить о ней в отрыве от яп (как инде какого-то х.ра захотел) не имеет смысла. Релоки, регистры, ячейки памяти, отморфленный в буфер мессаджбокс и т.п. тут вообще никаким боком.
     
  10. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.615
    Адрес:
    Russia
    не соглашусь
     
  11. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.615
    Адрес:
    Russia
    разница между RefMyName и MyPointer существенна
    mov AL,RefMyName и mov esi,MyPointer / mov AL,[esi]

    итог обоих случаев AL="R"
     
  12. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.329
    Да пожалуйста. Я просто факт озвучил, что ссылки в с++ ввели как упрощение работы с указателями (в смысле набора текста).
     
  13. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.329
    Твое MyPointer в сишке называется указатель на указатель, а RefMyName - просто указатель. Ссылки тут вообще не при делах.
     
  14. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.615
    Адрес:
    Russia
    даже в педивикии написано иначе
     
  15. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.615
    Адрес:
    Russia
    это заблуждение

    int a = 3;
    int *p = &a; //объявили, создали и инициализировали объект

    &a и &p существуют и различны в то время как &3 бессмысленен также как offset(3)
     
    Последнее редактирование: 24 авг 2017
  16. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.329
    Даю определение: ссылка -это указатель, который рукожоп не может испортить опечатками в тексте.
    Пользуйтесь :)
     
  17. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.329
    Разумеется. А где я говорил, что нет? Одно указатель (хранит адрес, где хранится число 3), а второе - указатель на указатель (хранит адрес, где хранится адрес, где хранится число 3).
     
  18. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.615
    Адрес:
    Russia
    ссылка является альтернативным именем то есть по сути метка в данных или imm а не mem (по интелловской классификации операндов)
    указатель переменная хранящая адрес или mem
     
  19. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.615
    Адрес:
    Russia
    не верно

    определения даются так - пишется конструкция а потом табличкой части конструкции и термины им соответствующие
     
    Последнее редактирование: 24 авг 2017
  20. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.615
    Адрес:
    Russia
    дана строка с помшью директивы BYTE , определена ссылка на строку с помощью директивы Label
    и указатель на строку - переменная содержащая адрес строки

    интересует мнение Indy - достаточно ясности в моем определении ???
    rmn с вашей системой определений я не согласен, на изменение ваших взглядов не претендую, имхо у вас путаница (совершенно субъективно), общепринятый смысл иной чем у вас
     
    Последнее редактирование: 24 авг 2017