Обсуждение:Висячий указатель

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Ссылка и указатель – не одно и то же[править код]

Существуют языки, в которых эти понятия различны, но близки. Указатель – нечто, во что завёрнут адрес ячейки памяти, позволяющее как косвенно адресовать её, так и изменить сам адрес, в результате чего указатель будет указывать уже на другую ячейку, и даже освободить память, на которую указывает указатель. Указатель может быть и константным, тогда изменить адрес нельзя. Но можно присвоить константный указатель обычному, а потом помять его значение. А ссылка – нечто, во что завёрнут разыменованный константный указатель, по которому нельзя освобождать память. Главное отличие ссылки даже от константного указателя на защищённую память в том, что для косвенной адресации памяти по указателю его требуется явно разыменовать, а ссылка уже разыменована и для адресации памяти разыменовывать её ещё раз уже не нужно. И хотя на низком уровне адресация остаётся косвенной, но на высоком уровне эта косвенность оказывается неявной, а при использовании указателя – явной. Есть языки, в которых есть указатели, но нет ссылок. О языках, на которых оба понятия существуют и совпадают мне не известно, также как и о языках, где есть ссылки, но нет указателей. 31.135.43.252 11:36, 23 февраля 2020 (UTC)[ответить]