Light-industry-up.ru

Экосистема промышленности

Ссылка (программирование)

05-08-2023

Ссылка в программировании — это объект, указывающий на определенные данные, но не хранящий их. Получение объекта по ссылке называется разыменованием.

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

В языках программирования ссылка может быть реализована как переменная, содержащая адрес ячейки памяти. В некоторых языках высокого уровня также имеется возможность использовать ссылки на объекты при передаче объектов в подпрограмму и из подпрограммы.

Содержание

Примеры реализаций ссылок

C++

Ссылки в C++ должны быть связаны с каким-либо объектом. Таким образом, «нулевые ссылки» (не связанные с каким-либо объектом), в C++ отсутствуют. Разыменование ссылок в C++ не требует специального оператора. Таким образом, в C++ ссылки — форма передачи адреса в стек напрямую, минуя копирование и указатели.

В следующем примере параметр x передаётся по значению, а y — по ссылке. Результат работы функции помещается в y:

#include <iostream>
 
using namespace std; // без этой записи нам бы пришлось дописывать "std::" к cout и endl
 
void square(int x, int &result)
{
        result = x*x;
}
 
int main()
{
        int y = 0;                      //Инициализация    
        square(3, y);   
        cout << "y=" << y << endl;      //y=9
 
        return 0;       
}

Java и C#

В этих языках понятие указателя отсутствует, а вместо него используется понятие ссылки. Разыменование ссылок и взятие адресов объектов для присваивания их ссылкам не требует специального оператора.

PHP

Ссылки в PHP — это средство доступа к содержимому одной переменной под разными именами. Они не похожи на указатели C и не являются псевдонимами таблицы символов. В PHP имя переменной и её содержимое — это разные вещи, поэтому одно содержимое может иметь разные имена. Ближайшая аналогия — имена файлов Unix и файлы — имена переменных являются элементами каталогов, а содержимое переменных это сами файлы. Ссылки в PHP — аналог жёстких ссылок (hardlinks) в файловых системах Unix.

  <?php
  $a = 'text';
  $b =& $a;
  print $b.'<br />';
  $a = 5;
  print $b.'<br />';
  ?>
 text
 5

См. также

Ссылка (программирование).

© 2014–2023 light-industry-up.ru, Россия, Краснодар, ул. Листопадная 53, +7 (861) 501-67-06