Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.11.29;
Скачать: CL | DM;

Вниз

Работа с указателями   Найти похожие ветки 

 
novai   (2009-10-09 11:14) [0]

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


 
Игорь Шевченко ©   (2009-10-09 11:19) [1]

там, где читал, примеров не было ?


 
Kolan ©   (2009-10-09 11:20) [2]

Указатели нужны, потому что без них никак. Например в Делфи все объекты — это указатели.

Спросите точнее, иначе сюда придется вставить текст какой-нибудь книги.


 
novai   (2009-10-09 11:20) [3]

читал это:
http://transl-gunsmoker.blogspot.com/2009/09/blog-post.html#pointers
но для чего они?


 
DVM ©   (2009-10-09 11:31) [4]


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

Для работы с памятью.


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

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

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


 
Kolan ©   (2009-10-09 11:35) [6]

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


 
Anatoly Podgoretsky ©   (2009-10-09 12:06) [7]

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

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


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

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


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

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


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


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

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


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

> 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 байта.

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


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

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

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


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


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

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


 
Anatoly Podgoretsky ©   (2009-10-10 10:03) [14]

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

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


 
KilkennyCat ©   (2009-10-10 10:28) [15]

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


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

> novai   (09.10.09 11:14)

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


 
Virgo_Style ©   (2009-10-10 12:13) [17]

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


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

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


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


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

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


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

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


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


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

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


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

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

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


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

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


 
MsGuns ©   (2009-10-12 22:28) [24]

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

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



Страницы: 1 вся ветка

Текущий архив: 2009.11.29;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.01 c
15-1254472377
@!!ex
2009-10-02 12:32
2009.11.29
Как работает Hamachi?


2-1255585631
Маркабес
2009-10-15 09:47
2009.11.29
Как составить SQL запрос


4-1223938181
Ruzzz
2008-10-14 02:49
2009.11.29
как "ловить мышку" после ответа HTCAPTION на WM_NCHITTEST


4-1223552958
тимохов
2008-10-09 15:49
2009.11.29
Как снять метрики (размеры) элементов Radio button а,


15-1254345618
Германн
2009-10-01 01:20
2009.11.29
Интересные системные требования.