Другие языки программирования и технологии

Несколько вопросов по C++

1) Для чего нужны указатели?
2) Для чего нужны ссылки?
3) Для чего нужно выделять и удалять память для объектов (new, delete)?
Где это можно применять и можно ли без этого? Что изменится?
Абылай Xxxxx
Абылай Xxxxx
817
1) для обращения к адресам памяти через указатель, то есть косвенно.
Это дает возможность обращаться к данным, меняя только адрес. Полезно при работе с массивами и другими более сложными структурами, позволяет менять значения переменных в функциях.
2) ссылка просто псевдоним перемен ной, используется как указатель в функциях, позволяет изменять значения.
3) new и delete нужны для расширения возможностей программы. если их не использовать, программа не сможет работать с расширенной памятью (heap) и будет хранить свои данные в стеке и сегменте данных. Простые программы могут обойтись без динамической памяти.
Зы. Если не использовать new, то и утечки памяти в вашей программе не будет. Утечка возникает, если использовали new, а потом указатель "потеряли",и он стал не доступен программе, а память в heap продолжает занимать.
Валёк Селиванов
Валёк Селиванов
35 996
Лучший ответ
1. для косвенной адресации данных
2.. для упрощения передачи параметров в функции
3. для создания и уничтожения объектов
Применять это можно и нужно в программировании. Без этого тоже можно программировать, но это будет уже не C++. До Москвы из Петербурга можно, несомненно, добраться ползком, но лучше сесть на поезд или самолет.
Вам учебник по C++ процитировать?
Сунгат Габитов
Сунгат Габитов
49 555
1. Для хранения адреса данных в памяти. Лучше ссылки используй, а то налажаешь.
2. Для того же, для чего нужны указатели. Только синтаксис другой и адрес куда указывает менять нельзя.
3. Чтобы программа не текла.
Можно и без этого, но очень гемморойно. За текущие программы в приличных местах вообще ногами бьют.
Антон Ларионов
Антон Ларионов
29 336
1) Указатели — это те же переменные. Разница в том, что вместо того, чтобы хранить определенные данные, они хранят адрес (указатель) , где данные могут быть найдены.
Указатель представляет собой адрес памяти, который указывает (или ссылается) на определенный участок.
----
2) Странный вопрос. Наверно для того, что бы проходить по ним. )
----
3)Операция new выделяет память из области свободной памяти, а операция delete высвобождает выделенную память. … После того как динамический массив стал ненужным, нужно освободить участок памяти, который под него выделялся.