2014-09-13 4 views
1

В чем разница между передачей node* и node *& в функцию? Не передают ли они адрес памяти? Что вы на самом деле передаете, когда используете один над другим?разница между узлом * и узлом * и C++

+1

Да, это указатель-магия http://www.eskimo.com/~scs/cclass/int/sx8.html – Coffee

+2

Это то же самое, что и 'int' vs.' int & '. Или 'double' против' double & '. Или любые другие 'T' против' T & '. – chris

+0

@chris node * делает копию адреса и узла * и не делает? это оно? – rogerthat

ответ

2

node *& является ссылкой ссылкой на указатель, тогда как node* - это просто указатель.

Таким образом, node *& добавляет дополнительный уровень косвенности, и это в основном второе имя для некоторого node * (указатель на node). Он чаще всего используется для передачи аргументов.

Для получения более подробной информации, пожалуйста, посмотрите here.

+0

Добро пожаловать) – grzkv

2

Обозначение node *& - это ссылка на указатель на объект узла, позволяющий изменить адрес памяти, на который указывает указатель (через ref), а также значение узла (через указатель). Использование нотации node * позволяет вам достичь последней.

Смежные вопросы