![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 03.04.2009
Сообщений: 59
|
![]()
Здравствуйте уважаемые программисты!
Недавно начал изучение "плюсов", так скажем с нуля, с типами данных адресацией и т.д. и т.п. вроде как разобрался, всё достаточно понятно, однако как только дошёл до раздела про указатели, сразу же появилось море вопросов... Большинство из них разъяснить всё же удалось, научился пользоваться, понял как они работают, но.. Остался главный вопрос, ответ на который я не смог найти - зачем нужны указатели? ![]() ![]() Заранее спасибо ![]() |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,792
|
![]()
Указатель например в отличие от переменной можно спозиционировать на скажем любой элемент массива, если указатель на массив указывает, просто компилер не позволит такого обычной переменной.
К тому же типы в указателях можно создавать динамически, а жестко типизированные переменные создаются сразу и помешаются в секции данных.
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,475
|
![]()
1. Массив по факту есть указатель:
Код:
3. Виртуальные функции в ООП работают только через указатели |
![]() |
![]() |
![]() |
#4 |
Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618
|
![]()
При передачи переменной в функцию, создается ее копия, следовательно тратится лишняя память. Если передавать не саму переменную, а ее адрес (указатель на нее), такой проблемы не возникает.
Без использования указателей, в какой либо функции, не возможно изменить значение более чем одной переменной, т.к. в функцию передаются копии этих переменных, а вернуть из функции можно только одно значение. Использование указателей решает эту проблему Вся работа с динамическим распределением памяти происходит через указатели
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 18.03.2009
Сообщений: 89
|
![]()
Alexcomeback,
тут люди в общем уже все написали, но обычно, чтобы реально понять, зачем что-то нужно, надо решить задачу, которая без этого не решается (или решается, но через одно место). Попробуй, например, сделать следующую прогу: 1. Пользователю предлагается ввести произвольное неотрицательное число (может быть большим!). После ввода заводится целочисленный массив с таким количеством элементов и инициализируется случайными числами. Как будешь делать? 2. Этот массив надо отсортировать с помощью отдельной функции, но не использовать под него глобальную переменную. Как будешь делать? |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 03.04.2009
Сообщений: 59
|
![]()
Ушёл переваривать всё вышесказанное...
![]() 2Pashan Насчёт пункта 2: то есть как я понял удобнее не грузить всю переменную в какую-либо функцию для обработки, а просто с помощью указателя "ткнуть" в её месторасположение? Если так, то по крайней мере 1 плюс "тыкальщиков" я всё же уяснил.. ![]() |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 03.04.2009
Сообщений: 59
|
![]() |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Слабые сущности в Делфи. | Droid | БД в Delphi | 10 | 19.01.2009 22:09 |
массив указателей на методы класса? | cout | Общие вопросы C/C++ | 2 | 08.05.2008 09:43 |
Массив указателей на структуры | SNAKE89 | Общие вопросы C/C++ | 4 | 27.12.2007 10:14 |
Инициализация массива указателей. Непонятно !!! | Adamant | Общие вопросы C/C++ | 2 | 05.11.2007 16:22 |