Форум программистов, компьютерный форум CyberForum.ru

Указатели в параметрах функции - C++

Восстановить пароль Регистрация
 
scenotaph
120 / 120 / 15
Регистрация: 29.03.2013
Сообщений: 237
19.05.2013, 15:13     Указатели в параметрах функции #1
Доброго времени суток! У меня "вопрос", кто-нибудь может максимально подробно объяснить разницу между:
1)
C
1
2
3
4
5
6
void ff (Listt **zag, int v){ 
 Listt *q = new Listt; 
 q->val = v; 
 q->next = *zag; 
 *zag = q; 
}
и 2)
C
1
2
3
4
5
6
void ff(Listt *&zag, int v){ 
 Listt *q = new Listt; 
 q->val = v; 
 q->next = zag; 
 zag=q; 
}
Обе функции выполняют одно и то же, но мне главное, чтобы кто-нибудь мне хорошо объяснил смысл употребление "амперсандов и звездочек" в данных примерах.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2013, 15:13     Указатели в параметрах функции
Посмотрите здесь:

bool в параметрах функции C++
C++ Шаблонные функции и указатели на функции
C++ Распечатать таблицы значений функций cox (x) и на отрезке [a; b] с шагом h, развив функции в ряд Тейлора и используя указатели на функции
Взаимный обмен значений указателей в параметрах функции C++
Как реализовать флаги в параметрах функции C++
C++ Таблица в параметрах функции
C++ Ошибка компиляции при неправильных входных параметрах функции
C++ Ключевое слово class в параметрах функции

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11818 / 6797 / 769
Регистрация: 27.09.2012
Сообщений: 16,870
Записей в блоге: 2
Завершенные тесты: 1
19.05.2013, 15:18     Указатели в параметрах функции #2
А что тут объяснять?
В первом случае используется указатель на указатель для изменения значения "оригинального" указателя в функции. Соответственно необходимо разыменовывать переданный указатель для изменения "оригинального".
Во втором случае используется ссылка на указатель, что облегчает синтаксис как в самой функции(не нужно разыменовывать указатель), так и при ее вызове(не нужно брать адрес указателя)
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.05.2013, 15:24     Указатели в параметрах функции #3
Звёздочка - знак указателя, а & - символ ссылки. Ссылка есть синоним другого данного, можно считать, что ссылка есть нечто, ведущее себя, как неявно разыменуемый при каждом обращении указатель, но нет ни каких гарантий стандарта, что ссылка и реализована будет через указатель. Единственное, где другой возможности реализовать ссылку, кроме синтаксической надстройки над указателем, просто нет - это ссылка-параметр.
Yandex
Объявления
19.05.2013, 15:24     Указатели в параметрах функции
Ответ Создать тему
Опции темы

Текущее время: 13:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru