почему? он есть. например, есть 2 ф-ии
f(strcut some_struct a)
g(struct some_struct* a)
передача структуры some_struct при использовании g будет быстрее, т.к. будет производится не полное копирование объекта, как в случае f, а лишь передача его адреса.
sator arepo tenet opera rotas ;)
------------------------------------------------------------ LJ
Гм... Если по-простому, то указатели - это адреса объектов в памяти.
Чаще всего используются в двух целях: увеличить скорость оперирования двумя объектами (например, функция swap, перегружаемая для указателей на большие объекты) или передача объекта в функцию по адресу (т.е. адреса реального объекта), а не его копии.
...Я тоже когда-то очень долго въезжал в суть указателей. Очень помогла в этом плане книга "Язык программирования Си" Б. Кернигана и Д. Ритчи. Хочешь досканально разобраться - читни.
Попробуй написать функцию на ассемблерре принимающую в качестве параметра пару мегабайт , посмотри че по размерам и по скорости получится, и вопросов таких больше никогда не будет.
А книгу надо по архитектуре микропроцессоров почитать, по моему проще и понятней, а так прям сразу Б. Кернигана и Д. Ритчи
А книгу надо по архитектуре микропроцессоров почитать, по моему проще и понятней, а так прям сразу Б. Кернигана и Д. Ритчи
Гм... Извини, конечно, но зачем нужно читать книги по архитектуре, чтобы стало проще и понятней? Это естественно, что на низком уровне, указателями оперируют так же часто (если не чаще), чем числами. Но применительно к ЯВУ, человек, после такого чтения, только больше запутается.
p.s.: Ессно имхо.
Указатели вещь очень нужная! Особенно в ООП, если дело касается полиморфизма времени выполнения.
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)
САБЖ
Никак не могу сообразить что же такое указатели? И главное зачем они нужны?
Естественный вопрос новичка - по моим наблюдениям все через это проходят
Пока почитай книжки, порешай примеры, а с накоплением опыта этот вопрос сам собой отпадёт.
Самый банальный ответ: указалями реализуется динамическая работа с памятью.
Например ты организуешь массив, но на этапе компиляции ещё неизвестен его размер... короче, думаю, примерно то же всё и в книжках написано.
А вот про полиморфизм времени выполнения Clear_Mind ценно подметил!
Без указателей в C++ никакого ООП не получилось бы!
не раз говорил, что лучший способ понять указатели и научиться эффективно их использовать - почитать книжку о структурах данных и операциях над ними. начать можно с тех же связанных списков, а далее копать деревя и графы.
sator arepo tenet opera rotas ;)
------------------------------------------------------------ LJ
Вставлю свои пять копеек:
Что бы разбираться с указателями, не нужно общаться с ООП.
Образно, если представить переменные программы в виде камеры хранения с ячейками, то в ячейке может хранится либо значение (Вы вынимаете бумажку с надписью "десять"). Это обычная переменная.
А может храниться бумажка с надписью смотри значение в ячейке двенадцать. Вы идете, и смотрите что находится в двенадцатой ячейке.
не раз говорил, что лучший способ понять указатели и научиться эффективно их использовать - почитать книжку о структурах данных и операциях над ними. начать можно с тех же связанных списков, а далее копать деревя и графы.
Для начала можно даже прсто с массивами в С разобраться. Очень помогает 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++
А лучше просто от начала и до конца прочитать какую-нибудь книжку по сям или си-плюсь-плюсям и чего-нибудь более или менее серьезное написать .
Удачи!
Серьезность - это способ сделать простые вещи сложными.
Если много знать - устанут глаза. Если много спать - то нет.
Нас никому не сбить с пути - нам пофигу куда идти.
:-)