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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
scenotaph
120 / 120 / 15
Регистрация: 29.03.2013
Сообщений: 237
#1

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

19.05.2013, 15:13. Просмотров 334. Ответов 2
Метки нет (Все метки)

Доброго времени суток! У меня "вопрос", кто-нибудь может максимально подробно объяснить разницу между:
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++ Шаблонные функции и указатели на функции
указатели и функции в с++ C++
Взаимный обмен значений указателей в параметрах функции C++
Как реализовать флаги в параметрах функции C++
C++ Таблица в параметрах функции
C++ Ошибка компиляции при неправильных входных параметрах функции
C++ Ключевое слово class в параметрах функции
C++ Как передать вектор в параметрах функции класса?
Ошибка в параметрах функции C++
C++ Не могу понять для чего третья переменная в параметрах функции

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12514 / 7076 / 794
Регистрация: 27.09.2012
Сообщений: 17,477
Записей в блоге: 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     Указатели в параметрах функции
Ответ Создать тему
Опции темы

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