Когда мы передаем указатель в качестве параметра методу, мы на самом деле передаем копию указателя на метод, или мы можем сказать, что передача указателя является прохождением значения указателя.
Подробное объяснение разницы между ссылкой и указателем в C ++
Ссылки представлены из C ++ и не существуют в C. Чтобы понять концепцию цитирования, вы должны сначала понять определение переменных и разницу между ссылками и переменными.
Ссылка не является переменной, это просто псевдоним для переменной, и она не имеет независимого пространства. Другими словами, ссылка должна иметь то же пространство памяти, что и переменная, которую она ссылается, и изменение в ссылке на самом деле является изменением на указанную переменную. И ссылки должны быть инициализированы при определении.
Тип передачи параметров и связанных с ними точек:
1 Пропустите значение: значение формального параметра не может быть изменен.
2 Справочный проход: нет необходимости выделять пространство, когда фактический параметр инициализируется.
3 Прохождение указателя: по сути, он все еще передается по значению. Если вам нужно изменить адрес указателя, просто пропустить его с указанием невозможно.
Ниже приведены соответствующее содержание:
1 Цитата концепция
2 const Quotes
3 проходная ссылка в качестве параметра
4 Ссылка на возвращаемое значение функции
5. Разница между ссылкой и указателем
1 Цитата концепция
Просто помните о следующих ключевых моментах:
(1) Ссылка является псевдонимом для переменных, и нет независимого пространства
(2) Ссылка должна быть передана с переменными, которые она ссылается
(3) Изменения в ссылке фактически являются изменениями в переменных, которые он ссылается
(4) Ссылки должны быть инициализированы при определении
(5) После того, как эталон инициализируется, другие переменные не могут быть рассмотрены.
См. Следующий пример:
int main (void) {int val = 100; int val2 = 500; // Только означает назначение Val2, то есть Val.2 const Quotes
Ключевые моменты цитирования Const заключаются в следующем:
(1) Как следует из названия, ссылка на констант является ссылкой на объект Const.
(2) Справочник CONST может относиться к неконфессиональному объекту, но неконцентрированная ссылка не может относиться к объекту Const. См. Пример следующего функции.
int a = 200;
(3) Значение объекта, на которое ссылается констант, является постоянным и не может быть изменено.
cont int a = 200;
(4) Справочник CONST может относиться к переменным различным типам, но будет создавать временную переменную. следующее:
Двойной a = 3.14; // const int & ref = tmp; ссылка на самом деле является временной переменной
3 проходная ссылка в качестве параметра
Передача ссылки в качестве параметра является одним из параметров. Не нужно выделять пространство памяти, когда фактический параметр инициализируется.
void wap (int & a, int & b) {int tmp = a;4 Ссылка на возвращаемое значение функции
Сначала перечислите примеры следующим образом:
int a [] = {1,2,3,4,5,6,7,8,9,0};Это еще одна функция ссылок, где функция может быть размещена слева от оператора назначения. Индексная функция возвращает ссылку [].
5. Разница между ссылкой и указателем
(1) Ссылка доступа является прямым доступом, а указатель доступа является косвенным доступом.
(2) Ссылка является псевдонимом для переменных.
(3) Как только ссылка инициализируется, на никаких других переменных нельзя ссылаться, но указатель может
(4) Используйте ссылки как можно больше и используйте указатели, когда вам нужно.
Спасибо за чтение и объяснение различий между ссылками и указателями в C ++.