Согласно опыту пользования ЯП: 1. Ссылка не допускает арифметики указателей. Все попытки модифицировать ссылку приводят к модификации объекта, на который она ссылается. 2. Ссылку нельзя изменить (то есть, нельзя изменить адрес, на который она ссылается). 3. Ссылка либо ссылается на существующий объект, либо имеет значение null (в определённых ЯП). Указатель может содержать в себе произвольное значение до тех пор, пока он не понадобится. С точки зрения lowlevel ссылка - просто синтаксически засахаренный указатель.
njeen, > Указателем является адрес, лежащий в ячейке памяти. Скорее корректное значение адреса есть указатель. Это значение может быть не в памяти, а в регистре. SadKo, Смотрите. Есть какое то значение в памяти. Оно не является указателем, ничего не адресует. Если для адреса, по которому расположено это значение(указатель) имеется релок, то это значение - указатель. Не смотря на то, был он загружен или нет(были обращения к этой переменной). Адрес этой переменной с указателем это ссылка ?
Информация о местоположении указателя в Relocation - это больше на ссылку смахивает. Теперь понятно к чему вы клоните. Если с выбором между "указатель" и "ссылка" вы испытываете серьёзные затруднения, то можно поступить проще: в начале статьи дать определение того, что вы будете понимать под термином "указатель" и того, что вы будете понимать под термином "ссылка". Тогда и неоднозначность трактовки сойдёт на нет.
Здесь имелась в виду обобщенная память. Регистры - тоже ячейки памяти, только в процессоре. Адрес не обязан быть корректным. Любое численное значение может быть интерпретировано как адрес.
Indy вы не на том форуме спросили. Ответ прост сообщество не разделяет понятия указатель и ссылка. Указатель это просто. Есть адрес это табличка на доме, а указатель эта табличка на дороге со стрелкой. Указатель от слова кажет. Поэтому это слово понятнее. А вот ссылка непонятно. Но проблема в том, что большинство думает что знает. Скорее всего вам скажут что это ссылка. Дать своё определение не получиться. Людей вы не переубедите они уже представили некоторый образ в своей голове и будут над вами смеяться. Советую просто придумать новое слово для описания статьи. Идея использовать понятие слабый и сильный указатель мне тоже не нравиться. Однако пока это лучшее.
RefMyName LABEL BYTE ; ссылка MyName BYTE 'Rockphorr' MyPointer DWORD offset(MyName) ; указатель на сколько я понимаю общепринято считать так. если хотите городите свои определения написал на основе этого текста https://ru.wikipedia.org/wiki/Ссылка_(C++)
Rockphorr, В ассемблере вообще нет разницы между указателем и ссылкой. Различаются они только во время компиляции высокоуровневого сорца, т.е. это чисто синтаксическая тема и говорить о ней в отрыве от яп (как инде какого-то х.ра захотел) не имеет смысла. Релоки, регистры, ячейки памяти, отморфленный в буфер мессаджбокс и т.п. тут вообще никаким боком.
разница между RefMyName и MyPointer существенна mov AL,RefMyName и mov esi,MyPointer / mov AL,[esi] итог обоих случаев AL="R"
Да пожалуйста. Я просто факт озвучил, что ссылки в с++ ввели как упрощение работы с указателями (в смысле набора текста).
Твое MyPointer в сишке называется указатель на указатель, а RefMyName - просто указатель. Ссылки тут вообще не при делах.
это заблуждение int a = 3; int *p = &a; //объявили, создали и инициализировали объект &a и &p существуют и различны в то время как &3 бессмысленен также как offset(3)
Даю определение: ссылка -это указатель, который рукожоп не может испортить опечатками в тексте. Пользуйтесь
Разумеется. А где я говорил, что нет? Одно указатель (хранит адрес, где хранится число 3), а второе - указатель на указатель (хранит адрес, где хранится адрес, где хранится число 3).
ссылка является альтернативным именем то есть по сути метка в данных или imm а не mem (по интелловской классификации операндов) указатель переменная хранящая адрес или mem
не верно определения даются так - пишется конструкция а потом табличкой части конструкции и термины им соответствующие
дана строка с помшью директивы BYTE , определена ссылка на строку с помощью директивы Label и указатель на строку - переменная содержащая адрес строки интересует мнение Indy - достаточно ясности в моем определении ??? rmn с вашей системой определений я не согласен, на изменение ваших взглядов не претендую, имхо у вас путаница (совершенно субъективно), общепринятый смысл иной чем у вас