Вызов С++ по ссылке:использование указателей [с примерами]
Вызов C++ по ссылке:использование указателей [с примерами]
В этом руководстве мы узнаем о вызове C++ по ссылке для передачи указателей в качестве аргумента функции с помощью примеров.
В учебнике по функциям C++ мы узнали о передаче аргументов функции. Этот используемый метод называется передачей по значению, поскольку передается фактическое значение.
Однако есть и другой способ передачи аргументов функции, при котором фактические значения аргументов не передаются. Вместо этого передается ссылка на значения.
Например,
05
Обратите внимание на 04
в 12
. Это означает, что мы используем адрес переменной в качестве нашего параметра.
Итак, когда мы вызываем 29
функция в 34
передав переменную num в качестве аргумента мы фактически передаем адрес num переменная вместо значения 5 .
Пример 1. Передача по ссылке без указателей
15пре>Вывод
22В этой программе мы передали переменные a и б к
48
функция. Обратите внимание на определение функции,36
Здесь мы используем
51
для обозначения того, что функция будет принимать адреса в качестве параметров.Следовательно, компилятор может определить, что вместо фактических значений ссылка на переменную передается в параметры функции.
В
64
функция, параметры функции n1 и n2 указывают на то же значение, что и переменные a и б соответственно. Следовательно, обмен происходит по фактическому значению.Ту же задачу можно выполнить с помощью указателей. Дополнительные сведения об указателях см. на странице Указатели C++.
<час>Пример 2. Передача по ссылке с использованием указателей
44Вывод
53Здесь мы видим, что вывод такой же, как и в предыдущем примере. Обратите внимание на строку,
65Здесь во время вызова функции передается адрес переменной, а не сама переменная.
Поскольку вместо значения передается адрес, оператор разыменования
70
должен использоваться для доступа к значению, хранящемуся по этому адресу.77
83
и91
дает значение, хранящееся по адресу n1 и n2 соответственно.Так как n1 и n2 содержать адреса a и б , все делается для
101
и *n2 изменит фактические значения a и б .Следовательно, когда мы печатаем значения a и б в
116
функция, значения изменяются.
Язык C