Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с указателями


Страницы:   1 2

novai ©   (2009-10-09 11:14:00) 

Почитал по указатели и работе с ними но не понял: для чего они нужны? для скорости? можно на примере показать?


MsGuns   (2009-10-12 22:28:00) [1]

>KilkennyCat ©   (10.10.09 10:28) [15]
>зачем нужны неуказатели?

Они и не нужны, ибо их не существует в природе


qwer_qwer   (2009-10-12 22:04:00) [2]

Это так... К размышлению. Раз уж всё знаете.


qwer_qwer   (2009-10-12 22:03:00) [3]

Кстати, есть указатели, и есть ссылки.

Причём грань между ними очень тонкая. ;-)
Вижу в топике все употребляют только одно - указатель. А по контексту это ссылка.
Почему так?


Германн   (2009-10-12 05:10:00) [4]


> Книжки, учебники нужно читать.
> уже много...
>

Устал что-ли? Так это только начало.


novai   (2009-10-12 04:59:00) [5]

Действительно прояснилась ли?
да
Книжки, учебники нужно читать.
уже много...


Германн   (2009-10-12 04:43:00) [6]


> Юрий Зотов ©   (09.10.09 15:06) [11]
> спасибо, ситуация прояснилась...
>

Действительно прояснилась ли?
Или только кажется?
Книжки, учебники нужно читать.


novai   (2009-10-12 04:29:00) [7]

Юрий Зотов ©   (09.10.09 15:06) [11]
спасибо, ситуация прояснилась...


Virgo_Style   (2009-10-10 12:13:00) [8]

Я на себе прочувствовал полезность указателей, когда в игре "жизнь" в конце каждого шага вместо копирования массива-результата в массив-исходник стал просто менять местами указатели на них %-)


Стенка   (2009-10-10 11:38:00) [9]

> novai   (09.10.09 11:14)

До некоторых пор можно работать без указателей.
Но есть вещи, которые без указателей или невозможны, или неэффективны.


KilkennyCat   (2009-10-10 10:28:00) [10]

А меня тоже всегда смущало наличие разных выкрутасов с памятью. Иными словами: зачем нужны неуказатели?


Anatoly Podgoretsky   (2009-10-10 10:03:00) [11]

> Германн  (10.10.2009 03:55:13)  [13]

Я кратко, он полнее.


Германн   (2009-10-10 03:55:00) [12]


> Anatoly Podgoretsky ©   (10.10.09 00:56) [12]
>
> > novai  (09.10.2009 12:11:08)  [8]
>
> Если кратко, то указывать.

Значит ЮЗ потратил зря свои несколько минут?.


Anatoly Podgoretsky   (2009-10-10 00:56:00) [13]

> novai  (09.10.2009 12:11:08)  [8]

Если кратко, то указывать.


Юрий Зотов   (2009-10-09 15:06:00) [14]

> novai   (09.10.09 11:14)

Еще пример. Пусть есть большая структура данных:
type
 TMyData = record
   Int: integer;
   ... // И еще много других полей.
  еnd;

и есть большой массив таких структур:
MyArray: array of TMyData;

Стоит задача: отсортировать этот массив по возрастанию поля Int. Понятно, что в процессе сортировки элементы массива будут перемещаться в памяти, а поскольку каждый элемент занимает большой кусок памяти, то сортировка займет много времени.

Теперь делаем немного иначе. Сначала объявляем тип указателя:
type
 PMyData = ^TMyData;
а потом объявляем немного другой массив:
MyArray: array of PMyData;

Теперь выполняем ту же самую сортировку, но перемещаться в памяти будут уже не сами данные, а указатели на них. И каждый указатель имеет размер всего 4 байта.

Как Вы думаете, такаясортировка сработает быстрее?


DrPass   (2009-10-09 13:02:00) [15]


> novai   (09.10.09 12:11) [8]
> так я и спросил -для чего они нужны?

Для более гибкой работы с памятью компьютера. Обычная переменная предполагает какой-то известный тип данных, и место в памяти под нее резервируется сразу. В то же время через указатели можно работать с произвольными данными, его можно переставлять на разные участки памяти, память под такие данные (к которым обращаешься через указатель) можно выделять по мере необходимости и высвобождать, когда она уже не нужна и т.д.


Медвежонок Пятачок   (2009-10-09 13:01:00) [16]

так тебе и ответили зачем


novai   (2009-10-09 12:11:00) [17]

так я и спросил -для чего они нужны?


Anatoly Podgoretsky   (2009-10-09 12:06:00) [18]

> novai  (09.10.2009 11:20:03)  [3]

Ты это больше не читай, пока не будешь знать предмет, поскольку это здоровье может испортить.
Дело не в том, что перевод корявый (это уже как умеет), а в том, что информация не пригодная к жеванию, поскольку плохо пережевано. Вот когда будешь знать, что такое указатели и для чего они, то тогда читать можно.


Kolan   (2009-10-09 11:35:00) [19]

По ссылке, имхо, нормально все рассказано. С учетом этого ответ такой: потому что так работает компьютер.


Медвежонок Пятачок   (2009-10-09 11:33:00) [20]

> но для чего они?

Чтобы указывать дорогу  и чтобы никто не потерялся и чтобы ничто не потерялось


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо