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

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

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

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6167 / 2896 / 282
Регистрация: 04.12.2011
Сообщений: 7,704
Записей в блоге: 3
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
Когда ссылка объявлена параметром функции, это не значит, что нужно передать ссылку, а это значит, что не будет передачи копии (передачи по значению), а будет передача по ссылке. Для передачи указателя по ссылке это будет иметь тот же смысл, что и для любой другой переменной передаваемой по ссылке.
Сделано, это с той же целью, что и для других переменных, то есть для упрощения синтаксиса по сравнению с передачей по указателю. Например, чтобы выделить динамическую память по указателю, переданному в функцию, нужно в неё передать указатель на этот указатель. Иначе, если передать сам указатель, то адрес выделенной памяти попадёт в копию и кроме утечки ничего не произойдёт. Передавать указатель на указатель, это писать две звезды. А в функции разыменовывать. А потом ещё их читать придётся когда-нибудь. Поэтому, легче передать указатель по ссылке.
 
Текущее время: 16:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru