Автор Вадим Булах задал вопрос в разделе Другие языки и технологии
Объясните мне указатели и ссылки в С++. Для чего они нужны? и получил лучший ответ
Ответ от Николай Веселуха[гуру]
Ссылка - накладная на товар. Передать накладную в бухгалтерию легче, чем притащить туда для освидетельствования 100500 тонн орехов, указанных в этой накладной, тем более что там их есть не собираются, а только распределят по складам да магазинам для реализации.
Накладная - ссылка.
Бухгалтерия - функция.
Орехи - объект.
При передаче в функцию (метод класса) объекта по значению, создаётся копия этого объекта. Это требует времени и ресурсов памяти. К тому же изменить можно только передаваемую копию, оригинал останется неизменным.
А вот если передать по ссылке или указателю, то функция (метод класса) работают непосредственно с самим объектом.
Указатель отличается от ссылки тем, что указатель это адрес в памяти, который при желании можно изменить, то есть взять адрес другого объекта, а ссылка намертво привязана к своему объекту. Ну как козла не назови, он вонять не перестанет.
Дойдёшь до конструктора копирования, поймёшь зачем нужны ссылки.
Чтобы объяснить все возможности указателей, 4000 знаков не хватит!
Важно.
К указателям применимы две операции, операция взятия адреса & и разыменование указателя *, обе - унарные. Первая & получает адрес объекта, который указывает на его первый байт в памяти, вторая * позволяет получить значение объекта, которое храниться в памяти по этому адресу.
Ссылки обязательно должны быть проинициализированы при их объявлении, и нельзя переопределить ссылку на другой объект.
C++ указатель на ссылку, ссылка на указатель что можно создать и пример кода если нетрудно.
int a;
int *p = &a; // указатель
int &r = a; // ссылка на a
int *& rp = p; // ссылка
подробнее...
В чем смысл указателя this в С++ ?
Что такое this? Попробую ответить простым языком.
Допустим имеется некий метод в неком
подробнее...
Кольцевой список( удаление элемента) Удалить элемент наиболее удаленный от текущего. Когда в списке не 1 элемент
1) Если у тебя нигде не хранится длина списка, то нужно её посчитать:
Пусть Cur - указатель на
подробнее...
В чем отличие С++ от С, С#, и С#.Net и какое отношение к ним имеет Sharp
С это подмножество С++. То есть изучив С++ вы должны без проблем понимать С.
Грубо
подробнее...
C++ VS 2010 CFile читать файл!
CFile F1;
F1. Open( L " text. dat " , CFile : : modeCreate | CFile : : modeReadWrite ) ;
подробнее...
Как удалить yea desktop??? Не могу удалить эту программу и она перегружает мой старенький ноут.
Гугол в помощь. Просто пишешь "Как удалить yea dekstop". Если что вот статья: Утилита для удаления
подробнее...
что такое файл и как его создать
Для обычного пользователя самый простой случай это создание текстового файла.
Открываете
подробнее...
чем отличается статическая от динамической ссылки?
Динамическая - значит, может изменяться, принимая разное значение (определяется скриптом ява или
подробнее...
для чего нужны виртуальные функции в C+/+?
Современные программы могут насчитывать десятки тысяч классов, которые связаны между собой
подробнее...
Зачем нужны динамические переменные в C++ Кто-нибудь объяснит на человеческом?)
Динами́ческая переме́нная — переменная в программе, место в оперативной памяти под которую
подробнее...
Раскажите пожалуйсто историю языка програмирования делфи.
(язык программирования)
[править]
Материал из Википедии — свободной энциклопедии
Перейти
подробнее...
Какие ещё программы кроме АртМани используют чтобы взломать игру на деньги?? ? помогите плиз))
Cheat ‘O Matic v.0.99a
Самая простая программа, позволяющая находить и редактировать значения
подробнее...
L.A. NOIRE Вечная синхронизация после запуска игры... ПОМОГИТЕ!!!
У меня семерка и у меня была бесконечная синхронизация так-как при запуске игры мне не предлагали
подробнее...