Популярно об указателях (объясните пожалуйста!)

Модератор: Модераторы разделов

Kernel panic
Сообщения: 15
ОС: Ubuntu Server

Популярно об указателях

Сообщение Kernel panic »

САБЖ
Никак не могу сообразить что же такое указатели?
И главное зачем они нужны?
:blink:
Вернулся на форум 3 года спустя.
Спасибо сказали:
Kernel panic
Сообщения: 15
ОС: Ubuntu Server

Re: Популярно об указателях

Сообщение Kernel panic »

Я кажется понимаю... но откуда выйгрыш в скорости?
:wacko:
Вернулся на форум 3 года спустя.
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Популярно об указателях

Сообщение elide »

а нет выигрыша... наоборот, одно лишнее обращение в память......
слава роботам!
Спасибо сказали:
Аватара пользователя
Asgard
Сообщения: 215
Статус: North Valfader

Re: Популярно об указателях

Сообщение Asgard »

а нет выигрыша...

почему? он есть. например, есть 2 ф-ии
f(strcut some_struct a)
g(struct some_struct* a)
передача структуры some_struct при использовании g будет быстрее, т.к. будет производится не полное копирование объекта, как в случае f, а лишь передача его адреса.
sator arepo tenet opera rotas ;)
------------------------------------------------------------
LJ
Спасибо сказали:
agreed
Сообщения: 143
ОС: Fedora 10, Mac OS X 10.5

Re: Популярно об указателях

Сообщение agreed »

Гм... Если по-простому, то указатели - это адреса объектов в памяти.
Чаще всего используются в двух целях: увеличить скорость оперирования двумя объектами (например, функция swap, перегружаемая для указателей на большие объекты) или передача объекта в функцию по адресу (т.е. адреса реального объекта), а не его копии.
...Я тоже когда-то очень долго въезжал в суть указателей. Очень помогла в этом плане книга "Язык программирования Си" Б. Кернигана и Д. Ритчи. Хочешь досканально разобраться - читни. ;)
Спасибо сказали:
TwisT
Сообщения: 265
ОС: Debian

Re: Популярно об указателях

Сообщение TwisT »

Попробуй написать функцию на ассемблерре принимающую в качестве параметра пару мегабайт , посмотри че по размерам и по скорости получится, и вопросов таких больше никогда не будет.
А книгу надо по архитектуре микропроцессоров почитать, по моему проще и понятней, а так прям сразу Б. Кернигана и Д. Ритчи
Linux user #432536.
Спасибо сказали:
agreed
Сообщения: 143
ОС: Fedora 10, Mac OS X 10.5

Re: Популярно об указателях

Сообщение agreed »

TwisT писал(а):
11.02.2006 00:26
А книгу надо по архитектуре микропроцессоров почитать, по моему проще и понятней, а так прям сразу Б. Кернигана и Д. Ритчи


Гм... Извини, конечно, но зачем нужно читать книги по архитектуре, чтобы стало проще и понятней? Это естественно, что на низком уровне, указателями оперируют так же часто (если не чаще), чем числами. Но применительно к ЯВУ, человек, после такого чтения, только больше запутается.
p.s.: Ессно имхо.
Спасибо сказали:
Аватара пользователя
Clear_Mind
Сообщения: 241
Статус: Изредко заглядывающий
ОС: openSuSE 11.1

Re: Популярно об указателях

Сообщение Clear_Mind »

Указатели вещь очень нужная! Особенно в ООП, если дело касается полиморфизма времени выполнения.
Bombers launch with no recall + Minutes warning of the missile fall
Take a look at your last sky + Guessing you won't have the time to cry
--- Iron Maiden (Brouther Than A Thousand Suns, 2006)
Спасибо сказали:
Аватара пользователя
Zeus
Сообщения: 694

Re: Популярно об указателях

Сообщение Zeus »

Kernel panic писал(а):
10.02.2006 19:36
САБЖ
Никак не могу сообразить что же такое указатели?
И главное зачем они нужны?
:blink:

Естественный вопрос новичка - по моим наблюдениям все через это проходят :)
Пока почитай книжки, порешай примеры, а с накоплением опыта этот вопрос сам собой отпадёт.

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

А вот про полиморфизм времени выполнения Clear_Mind ценно подметил!
Без указателей в C++ никакого ООП не получилось бы!
Спасибо сказали:
Аватара пользователя
Asgard
Сообщения: 215
Статус: North Valfader

Re: Популярно об указателях

Сообщение Asgard »

не раз говорил, что лучший способ понять указатели и научиться эффективно их использовать - почитать книжку о структурах данных и операциях над ними. начать можно с тех же связанных списков, а далее копать деревя и графы.
sator arepo tenet opera rotas ;)
------------------------------------------------------------
LJ
Спасибо сказали:
Kernel panic
Сообщения: 15
ОС: Ubuntu Server

Re: Популярно об указателях

Сообщение Kernel panic »

Asgard, agreed, Clear_Mind, Zeus
Большое спасибо за разъяснения! :)
Правда в ООП я ещё не сильно разбираюсь. :rolleyes:
Вернулся на форум 3 года спустя.
Спасибо сказали:
Аватара пользователя
plumbum
Сообщения: 169
ОС: Debivan

Re: Популярно об указателях

Сообщение plumbum »

Вставлю свои пять копеек:
Что бы разбираться с указателями, не нужно общаться с ООП.
Образно, если представить переменные программы в виде камеры хранения с ячейками, то в ячейке может хранится либо значение (Вы вынимаете бумажку с надписью "десять"). Это обычная переменная.
А может храниться бумажка с надписью смотри значение в ячейке двенадцать. Вы идете, и смотрите что находится в двенадцатой ячейке.
ivan-a-r_1.0-19791224.3_ru_i786.deb (testing)
Спасибо сказали:
Аватара пользователя
Sparky
Сообщения: 604
Статус: core dumped
ОС: Plan 9

Re: Популярно об указателях

Сообщение Sparky »

Asgard писал(а):
11.02.2006 12:07
не раз говорил, что лучший способ понять указатели и научиться эффективно их использовать - почитать книжку о структурах данных и операциях над ними. начать можно с тех же связанных списков, а далее копать деревя и графы.

Для начала можно даже прсто с массивами в С разобраться. Очень помогает B)
P.S. Кстати, так же рекомендовал бы Кернигана Ритчи посмотреть - очень доступно написано, без заумностей. Мне помогло :)
Блог
--------------------

GCS/M/MU/P/IT/E d- s: a- C++(+++) UBL++ P->-- L+++$ E- W+++$ N* o? K? w>--
O M-@ V- PS@ PE+ Y+ PGP+ t 5 X R* tv-->- b++ DI? D>+ G e+(++) h--- r+ y++
Спасибо сказали:
Аватара пользователя
Dron2004
Сообщения: 75
ОС: ASP Linux 11 Express

Re: Популярно об указателях

Сообщение Dron2004 »

Очень советую почитать книгу Джесса Либерти "C++ за 21 день". Там очень хорошо объяснена тема указателей и ссылок.

З.Ы.: я раньше тоже никак не мог понять зачем нужны указатели. Со временем дошло :) . И теперь вообще не понимаю, как без них, родных, можно обходиться ;)
Честно признаться...
Спасибо сказали:
sdk
Бывший модератор
Сообщения: 210

Re: Популярно об указателях

Сообщение sdk »

А лучше просто от начала и до конца прочитать какую-нибудь книжку по сям или си-плюсь-плюсям и чего-нибудь более или менее серьезное написать ;).
Удачи!
Серьезность - это способ сделать простые вещи сложными.
Если много знать - устанут глаза. Если много спать - то нет.
Нас никому не сбить с пути - нам пофигу куда идти.
:-)
Спасибо сказали: