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

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

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

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

19.05.2013, 15:13. Просмотров 368. Ответов 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; 
}
Обе функции выполняют одно и то же, но мне главное, чтобы кто-нибудь мне хорошо объяснил смысл употребление "амперсандов и звездочек" в данных примерах.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2013, 15:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Указатели в параметрах функции (C++):

bool в параметрах функции - C++
можно ли использовать тип bool в параметрах функции? void draw(char ch, int width, bool vline, bool hline ); или лучше использовать...

Таблица в параметрах функции - C++
Гуру, помогите пожалуста новичку! Хочу заменить if ((cmd_SS=="Q")|(cmd_SS=="QUIT")|(cmd_SS=="EXIT")) {} на одну функцию if...

Ошибка в параметрах функции - C++
Здравствуйте! Прошу помочь разобраться. Никак не могу понять как правильно написать параметры функции, чтобы принимала и переменные...

Ключевое слово class в параметрах функции - C++
Всем привет. Увидел в чужом коде такую конструкцию. void SomeFunction(class SomeClass * a) { a->F(); } В параметрах...

Как реализовать флаги в параметрах функции - C++
Объясните пожалуйста как реализовать флаги в параметрах функции. К примеру: есть такие флаги left middle right drowPoints...

Как передать вектор в параметрах функции класса? - C++
есть функция bool ReadDir(const std::wstring &, const std::wstring& , int, bool,bool , std::vector<std::wstring>&, bool& ); кода...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Croessmah
Эксперт CЭксперт С++
13205 / 7476 / 839
Регистрация: 27.09.2012
Сообщений: 18,374
Записей в блоге: 3
Завершенные тесты: 1
19.05.2013, 15:18 #2
А что тут объяснять?
В первом случае используется указатель на указатель для изменения значения "оригинального" указателя в функции. Соответственно необходимо разыменовывать переданный указатель для изменения "оригинального".
Во втором случае используется ссылка на указатель, что облегчает синтаксис как в самой функции(не нужно разыменовывать указатель), так и при ее вызове(не нужно брать адрес указателя)
1
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.05.2013, 15:24 #3
Звёздочка - знак указателя, а & - символ ссылки. Ссылка есть синоним другого данного, можно считать, что ссылка есть нечто, ведущее себя, как неявно разыменуемый при каждом обращении указатель, но нет ни каких гарантий стандарта, что ссылка и реализована будет через указатель. Единственное, где другой возможности реализовать ссылку, кроме синтаксической надстройки над указателем, просто нет - это ссылка-параметр.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2013, 15:24
Привет! Вот еще темы с ответами:

Взаимный обмен значений указателей в параметрах функции - C++
Необходимо создать шаблонную функцию void f(int *x, float *y) в которой *х - указатель на массив, состоящий из целых чисел, *у -...

Ошибка компиляции при неправильных входных параметрах функции - C++
Доброго времени суток, уважаемые форумчане! Возник следующий вопрос. Пусть имеется некоторый класс class MyClass { public: ...

Указатели и массивы. Указатели и функции - C++
Никак не разберусь с указателями на функцию. Пишу в Visual Studio. Надо написать функцию Compress() с использованием указателей, которая...

Указатели на массивы. Указатели и функции - C++
Вот задача: Даны два массива : А и B. Необходимо создать третий массив, в котором нужно собрать: -Элементы обоих массивов; -Общие...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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