Здравствуйте, Mamut, Вы писали:
M>Скажу крамолу Указатели непонятны, непонятны, непонятны, непонятны, непонятны, а потом — бац! — и все становится на свои места.
M>У некоторых, правда, не становится.
Вопрос в том, сколько это займет времени. Кроме того, не существует программиста, который решит любую проблему связанную с указателями за сколь угодно малое количество времени.
Указатели не составляют проблемы только при правильном использовании и идеальном дизайне. Кто может идеальный дизайн сделать — шаг вперед.
Кроме того, часть проблем никогда не решается — BSTR вам что нибудь говорит ?
Здравствуйте, Mamut, Вы писали:
M>Скажу крамолу Указатели непонятны, непонятны, непонятны, непонятны, непонятны, а потом — бац! — и все становится на свои места.
Это состояние называется в народе приход.
M>У некоторых, правда, не становится.
А это — импотенция.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, dmz, Вы писали:
dmz>Читаю в Джоэла, в который раз натыкаюсь упоминания на сложность указателей, вплоть до того, dmz>что он готов посвятить им отдельную часть мозга.
dmz>Не, ну я понимаю — функциональное программирование наверное штука сложная — монады там, то-сё. dmz>Но в каком месте сложны указатели-то? А? Не помню что бы хоть кто-то испытывал с ними какие-то dmz>проблемы, даже в школе.
У меня были проблемы с указателями такого плана что я не мог понять зачем они нужны вообще
Oyster wrote:
> dmz>А что такое "адрес" она понимала? Если понимала что такое "адрес" и > что такое "переменная", то до указателя > dmz>остался один небольшой шаг > > Вот как раз с адресом и были проблемы. Точнее, c тем, что переменная > может хранить адрес, по которому будет найдена другая переменная, грубо > говоря — отказывались мозги воспринимать идею ссылки. Правда, может, > моего таланта репититора не хватило?
Понятие односвязного списка, по-моему, неплохо демонстрирует понятие указателя, а также
для чего его можно использовать.
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, Сергей Губанов, Вы писали:
СГ>ОТО — это более-менее удачная попытка описать наше пространство-время (и, одновременно, физический принцип эквивалентности инерциальных систем отсчёта) с помощью Римановой геометрии. Стало быть, основное положение ОТО одним недлинным предложением можно выразить так: "Наше пространство-время — суть 4х-мерное Риманово многообразие."
Ну вот, теперь все понятно!
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Здравствуйте, kan_izh, Вы писали:
_>Понятие односвязного списка, по-моему, неплохо демонстрирует понятие указателя, а также _>для чего его можно использовать.
Объяснить порой тяжелее, чем понять Я и этот пример использовал...
Здравствуйте, dmz, Вы писали:
dmz>Не, ну я понимаю — функциональное программирование наверное штука сложная — монады там, то-сё. dmz>Но в каком месте сложны указатели-то? А? Не помню что бы хоть кто-то испытывал с ними какие-то dmz>проблемы, даже в школе.
Ну... когда я в первый раз в деятом классе посмотрел на С-код, который использовал указатели, он мне показался магическим Но после знакомства с ассемблером (Atary, Z80) все стало на свои места. Указатели требуют знания архитектуры, поэтому при обучении начинать надо оттуда. А списки, имхо, недостаточно для полного усвоения идеи В целом мне знакомы люди, у которых были проблемы с указателями.
M>Ну... когда я в первый раз в деятом классе посмотрел на С-код, который использовал указатели, он мне показался магическим Но после знакомства с ассемблером (Atary, Z80) все стало на свои места. Указатели требуют знания архитектуры, поэтому при обучении начинать надо оттуда. А списки, имхо, недостаточно для полного усвоения идеи В целом мне знакомы люди, у которых были проблемы с указателями.
А бывает вообще такое, что бы учили программировать без ознакомления с какой-нибудь (фон-неймановой) архитектурой?
Здравствуйте, dmz, Вы писали:
dmz>А бывает вообще такое, что бы учили программировать без ознакомления с какой-нибудь (фон-неймановой) архитектурой?
Бывает. Плюс в мое время много самоучек. Одного моего знакомого учили Basic так: это PRINT, это LET, это INPUT. а до остального сам догадаешься В любом случае этому уделяют внимания меньше чем нужно.
Здравствуйте, Сергей Губанов, Вы писали:
СГ> "Наше пространство-время — суть 4х-мерное Риманово многообразие."
Тогда, раз тебе все ясно, объясни исходя из этого определения, что вероятность прилепить свежую козявку к нижней поверхности стола не зависит от местоположения стола в комнате.
Я, например, смогу на пальцах с помощью указателей объяснить про ребалансировку дерева Хаффмана. А также почему третий байт в .tar.bz2-архиве равен первому символу имени архива, и почему вероятность появления последующего ненулевого бита равна нулю.
Здравствуйте, Mamut, Вы писали:
dmz>>Может, у Джоэла были в детстве какие-то проблемы с указателями, которые травмировали нежную психику, dmz>>а теперь он на всех это проецирует?
M>Скажу крамолу Указатели непонятны, непонятны, непонятны, непонятны, непонятны, а потом — бац! — и все становится на свои места.
Почему крамолу? У меня точно так было. Правда "... непонятны, непонятны, ..." совпало с программирванием на Паскале, а "бац!" с началом программирования на Си. Вот что значит think different.
Здравствуйте, Mazay, Вы писали:
M>Почему крамолу? У меня точно так было. Правда "... непонятны, непонятны, ..." совпало с программирванием на Паскале, а "бац!" с началом программирования на Си. Вот что значит think different.
Это чистое совпадение
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Здравствуйте, Mazay, Вы писали:
M>Почему крамолу? У меня точно так было. Правда "... непонятны, непонятны, ..." совпало с программирванием на Паскале, а "бац!" с началом программирования на Си. Вот что значит think different.
Согласен.
Возможность на Object Pascal-е (насчет Паскаля не могу сказать) написать:
var
p: PSomeStruct;
begin// и вот так:
p.SomeMember := 0;
// и вот так:
p^.SomeMember := 0;
// и это будет равнозначно :crash:
, никак не способствует нормальному пониманию указателей.
И если сюда еще приплюсовать функции с подобной сигнатурой:
procedure Finalize( var V [; Count: Integer] );
// илиprocedure New(var P: Pointer);
, которым непоняно что передавать: то ли адрес переменной, то ли саму переменную, и что вообще из всего этого получится.
Другими словами все это наверное можно назвать неочевидным level of indirection..
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Здравствуйте, dmz, Вы писали:
dmz>Читаю в Джоэла, в который раз натыкаюсь упоминания на сложность указателей, вплоть до того, dmz>что он готов посвятить им отдельную часть мозга.
dmz>Может, у Джоэла были в детстве какие-то проблемы с указателями, которые травмировали нежную психику, dmz>а теперь он на всех это проецирует?
Есть люди которым они поддаються, есть те, кто никак не может понять их концепцию. Тут или дано, или не дано.
Третьего не бывает.
_>Есть люди которым они поддаються, есть те, кто никак не может понять их концепцию. Тут или дано, или не дано. _>Третьего не бывает.
Ого — это теперь уже целая концепция? Может, даже парадигма?
_>А вы уверены что сами понимаете их в полной мере?