![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с указателями
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]> но для чего они?
Чтобы указывать дорогу и чтобы никто не потерялся и чтобы ничто не потерялось