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

Объяснить, что делает операция *& и чем она отличается от простого указателя? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Имитация контейнеров. Классы http://www.cyberforum.ru/cpp-beginners/thread1730177.html
Я создал через контейнеры, все работает замечательно. Но попросили сделать еще без использования контейнеров, можете помочь с кодом? Где и как его изменить? Вообще не могу сообразить. Создать...
C++ Как открыть определенный файл через ShellExecute Такая проблема, не знаю, как открыть (указать путь) к bat файлу ,который хочу открыть. делал так не получается. case 4:{ShellExecute(NULL, "open", "123.bat", "/select,... http://www.cyberforum.ru/cpp-beginners/thread1730176.html
Вывести массив содержащий длины всех серий исходного массива C++
Снова здравствуйте! Есть задача: "Дан целочисленный массив размера N. Назовем серией группу подряд идущих одинаковых элементов, а длиной серии - количество этих элементов (длина серии может быть...
C++ Копирование определенных строк
Всем привет. Задача скопировать строки из txt файла начиная с 16-ой строки в новый txt файл. Есть код но он копирует весь файл целиком. Есть подозрения что нужно использовать копирование с...
C++ Дана строка, вывести различные слова и число их вхождений http://www.cyberforum.ru/cpp-beginners/thread1730144.html
Помогите,пожалуйста. Нашел код рабочей программы,но тут очень много непонятного для меня,нужно написать использую string,iostream,cctype #include <stdio.h> #include <stdlib.h> #include <string.h>...
C++ Можно ли построить башню с заданными параметрами? Вдохновленный легендой о вавилонской башне Петр решил построить ее аналог. Для этого он взял N=22 детских строительных кирпичей и выбрал для себя размер основания D=2. И высоту башни H - 8. Он решил... подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6471 / 3119 / 306
Регистрация: 04.12.2011
Сообщений: 8,594
Записей в блоге: 4
09.05.2016, 14:16
Raketa, ссылка может быть объявлена на всё. Кроме ссылки. На указатель ссылка объявляется так же как и на любой другой тип.
C++
1
2
3
4
5
T a;//a это переменная типа T
T &ref_a=a;//ref_a это ссылка на a
 
T *ptr_a =&a;//ptr_a это переменная хранящая адрес переменной a (то есть ptr_a это указатель на a)
T *&ref_ptr_a=ptr_a;//ref_ptr_a это ссылка на указатель на переменную a
Когда ссылка объявлена параметром функции, это не значит, что нужно передать ссылку, а это значит, что не будет передачи копии (передачи по значению), а будет передача по ссылке. Для передачи указателя по ссылке это будет иметь тот же смысл, что и для любой другой переменной передаваемой по ссылке.
Сделано, это с той же целью, что и для других переменных, то есть для упрощения синтаксиса по сравнению с передачей по указателю. Например, чтобы выделить динамическую память по указателю, переданному в функцию, нужно в неё передать указатель на этот указатель. Иначе, если передать сам указатель, то адрес выделенной памяти попадёт в копию и кроме утечки ничего не произойдёт. Передавать указатель на указатель, это писать две звезды. А в функции разыменовывать. А потом ещё их читать придётся когда-нибудь. Поэтому, легче передать указатель по ссылке.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru