Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 11.10.2011
Сообщений: 3

Ссылка на указатель в аргументе функции

11.10.2011, 18:48. Показов 1948. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
при изучении примеров реализации бинарного дерева(в функции добавления нового узла)я увидел,что есть как такой вариант,когда аргумент функции просто указатель:
(http://www.cprogramming.com/tutorial/lesson18.html)
C++
1
2
3
4
5
6
7
8
9
10
11
void btree::insert(int key, node *leaf)
{
  if(key< leaf->key_value)
  {
    if(leaf->left!=NULL)
     insert(key, leaf->left);
    else
    {
     ......
    }
}
так и такой(http://smccd.net/accounts/gras... eeType.cpp)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void Insert(TreeNode*& tree, ItemType item)
// Inserts item into tree.
// Post:  item is in tree; search property is maintained.
{
  if (tree == NULL)
  {// Insertion place found.
    tree = new TreeNode;
    tree->right = NULL;
    tree->left = NULL;
    tree->info = item;
  }
  else if 
{....}
Вопрос :почему во 2-м случае применяется ссылка на указатель?
И вообще,кто-нибудь может об'яснить,когда ее применять и в чем ее отличие и преимущество перед двойным указателем?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.10.2011, 18:48
Ответы с готовыми решениями:

Чем отличаются указатель в теле функции и в аргументе
Здравствуйте. Не могу разобраться чем, в данном случае: bool LexAnalysis(const char* text) { const char *str = text; const char...

Указатель = 0 в аргументе конструктора
Не знал даже как тему назвать. :D Прошу пояснить такой момент, не в первый раз встречаю, но гугл мне не объяснил. Для чего, иногда в...

Указатель/ссылка в параметре функции
Здравствуйте. Опять появился вопрос. Почему автор книги, которую я читаю, постоянно использует в параметрах функции ссылку/указатель и...

3
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
11.10.2011, 19:06
Ссылка на указатель убирает лишний уровень косвенности при обращении к такой переменной и позволяет писать более "чистый" код, а также дает возможность изменить указатель в месте вызова.
0
0 / 0 / 0
Регистрация: 11.10.2011
Сообщений: 3
11.10.2011, 19:23  [ТС]
А что такое "убрать лишний уровень косвенности"-можно пояснить ма примерах?
И чем,например код во втором примере,который я привел чище первого?
А изменять указатель можно и при двойном указателе,чем же ссылка лучше?
0
 Аватар для palva
4276 / 2969 / 692
Регистрация: 08.06.2007
Сообщений: 9,922
Записей в блоге: 4
12.10.2011, 00:34
Вот так пришлось бы написать второй пример без использования ссылки.
Code
1
2
3
4
5
6
7
8
9
10
11
void Insert(TreeNode** tree, ItemType item)
// Inserts item into tree.
// Post: item is in tree; search property is maintained.
{
if (*tree == NULL)
{// Insertion place found.
*tree = new TreeNode;
*tree->right = NULL;
*tree->left = NULL;
*tree->info = item;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.10.2011, 00:34
Помогаю со студенческими работами здесь

Указатель или ссылка на указатель. В чем разница?
Есть вопрос про указатели и ссылки на указатели :scratch: Хочу в функциях f1() и в f2() динамически выделить память и возвратить этот...

Аналитичность функции, значение функции при заданном аргументе и выделение мнимой и вещ частей
Привет всем. Народ как поступил вообще в универ вообще мат не понимаю, хотя в школе было 5. Помогите с функцией плс: В заданной функции...

Ошибка в аргументе функции
Доброго времени суток. В университете дали такое задание: Составить программу на основе ветвления, концепция задачи такова: ...

Объект в аргументе функции
window.onload = function () { var F = document.getElementById(&quot;Id1&quot;); F.onmousemove =...

Использование указателя в аргументе функции
Почему в аргументе написали &quot;const char* filename&quot;, а не &quot;string filename&quot;? lua_State * lua_state; void Open(const char*filename) }...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru