02:22

Any troubles?
С++ стал изучать недавно. Но вот хоть убей не понимаю что такое указатели и для чего они нужны!! Может ли кто-нибудь подробно объяснить?

Комментарии
02.12.2005 в 03:46

149ea694a792f3ad2caaf77077a0df58 Спорящая с богом
jaizer

Простой пример: у тебя где-то там на диске С есть Ворд, а на десктопе - ярлычок, который хранит адрес Ворда. Хотя сам по себе тоже является файлом. Щёлнешь по нему - откроется Ворд. Вот так и указатель: это переменная, которая хранит адрес другой переменной, и предоставляет доступ к её содержимому. Эдакий ярлычок;о)
02.12.2005 в 23:48

Any troubles?
Караидель Так. Спасибо. Что это такое теперь понятно )))

А вот для чего это надо можно в нескольких словах объяснить??
03.12.2005 в 00:03

149ea694a792f3ad2caaf77077a0df58 Спорящая с богом
jaizer

Это бывает нужно во многих случаях:

1. Если ты передаёшь функции большой объект и не хочешь тратить время на его копирование

2. Если ты хочешь внутри функции изменять содержимое переменных переданных в качестве аргумента

3. Если ты хочешь создать объект внутри функции и продолжить его использование после завершения функции (Внимание! Память под объект должна быть выделена динамически!)

4. Если размер массива заранее неизвестен и его предполагается выделять динамически

5. Если ты хочешь воспользоваться приёмами арифметики указателей - многие алгоритмы обработки массивов так выглядят значительно изящнее

6. Если предполагается использовать структуры данных - большинство из них невозможно реализовать без указателей

7. Если в программе сложная иерархия классов и ты не знаешь заранее к какому из дочерних классов будет принадлежать объект

А так же во многих других случаях.



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

03.12.2005 в 00:58

Никогда не оскорбляйте словом. Оскорбляйте смыслом слов.
jaizer, есть такое мнение, что либо ты понимаешь указатели сразу, либо тебе этого от рождения не дано.



Оно весьма спорное, однако оно существует :)



Караидель правильно говорит - без указателей нам как без рук. А ты - "зачем нужны", да ещё и с тремя восклицательными... Обидно даже :)
03.12.2005 в 01:05

149ea694a792f3ad2caaf77077a0df58 Спорящая с богом
One DOOMed Developer

Очень спорное мнение. Знаю немало народу, кто понял указатели не с первого раза. Я сама сначала научилась ими пользоваться, потом поняла как они работают, потом выучила ассемблер и ещё раз поняла как работают указатели;о)

А насчёт дано - не дано, это скорее полиморфизм;о) Вот его действительно понимают далеко не все.
03.12.2005 в 11:32

Any troubles?
Караидель Спасибо. Просто у с++ идеология программирования другая. Вот и непривычно просто. Стало немного понятно. Понял с какой областью это связано. Еще раз спасибо )))
03.12.2005 в 12:06

149ea694a792f3ad2caaf77077a0df58 Спорящая с богом
jaizer

Другая по сравнению с чем? Указатели-то начинаются ещё в старом Си...
03.12.2005 в 13:01

Any troubles?
Караидель Другая по сравнению с другими языками ))))
05.12.2005 в 01:00

All these moments will be lost in time.
jaizer Назови ети языки плиз просто интересно :)

Даже в банальном php есть указатели :)

Караидель :) Да фигня ето имхо насчет понимают не понимают ,значит просто не приперло уж как я не понимал АОП приспичило и понял :)
05.12.2005 в 01:03

149ea694a792f3ad2caaf77077a0df58 Спорящая с богом
ulei

В Бэйсике и Джаве нет указателей, только ссылки. А начинающие программеры воспринимают это как данность и далеко не сразу интересуются как это устроено.
05.12.2005 в 01:08

All these moments will be lost in time.
Караидель Ну поетому я и спросил список :) любопытный я жуть наверное ето професиональное ;)
05.12.2005 в 22:52

Any troubles?
ulei Помню в универе давали нам В.баэйсик... Указателей нам вообще не давали. Вот это мне и ново...
09.12.2005 в 17:39

All these moments will be lost in time.
jaizer Ясно,спасибо :)