Народ, если можно просто кратко скажите какой толк от использования Указателей. )) Ато появляются задатки Холивара в этой теме.
BlackRaven
> Народ, если можно просто кратко скажите какой толк от использования Указателей.
Никакой. Просто в C++ другого выбора нет(ну разве что "умные указатели", но я про их работу ничего не знаю. Возможно они медленные и не везде применимы.).
/facepalm
Как тебе объяснить какой толк, если ты не понимаешь, что такое вообще указатель?
еслиб понимал не спрашивал...
Ну я писал что недавно начал изучать С++, поэтому поработать с ним в достаточном количестве не довелось.
Ну ладно, ответа как я понял не получу) поэтому сворачиваюсь) ушёл дальше гуглить)
Я понимаю что такое указатель, я не понимаю для чего это, вернее что это сулит
Почему лучше(хуже) обращаться к адресу в памяти, а не к самому объекту, вот лишь что я хотел узнать.
X512
С каких пор общественный транспорт не авто? Метро разве.
BlackRaven
В принципе вместо указателя в некоторых случаях (отнюдь не во всех) можно было бы использовать массив + индекс массива, но проблема в том, что в c++ массивы определены в стеке и имеют размер, который должен быть известным в момент компиляции.
Указатели же позволяют просто зарезервировать (и когда нужно освобождать) известный объем памяти из кучи динамически, в процессе выполнения программы.
Указатель содержит в себе следующую информацию: тип данных и адрес ячейки с данными, вещь удобная но и опасная, поскольку можно взять не тот тип и не по тому адресу. Кроме того, можно зарезервироввать памать в куче и передать указателю. Если же указатель будет потерян (при выходе из блока например, в котором он определен), то будет и потеряна эта память. Это называется утечкой памяти. Поэтому указатели стараются усовершенствовать, сделать их интеллектуальными, такими, чтоб они перед смертью освобождали и память.
BlackRaven
> Почему лучше(хуже) обращаться к адресу в памяти, а не к самому объекту, вот
> лишь что я хотел узнать.
Можно например взять квадратный корень из адреса в Си++! Очень полезная штука.
BlackRaven
> Народ, если можно просто кратко скажите какой толк от использования Указателей.
Можно выделить память под что-то один раз и передавать на это что-то указатель в функции - бонусов сразу много, - меньше памяти программа потребляет, быстрее работает за счет отсутствия копирования данных из одного места в другое. Кроме того указатели нужны для реализации концепции полиморфизма в ООП.
Отдельная тема - это конечно указатели на функции и их обобщение в с++ - виртуальные функции.
X512
> Это очень плохо. Из за них все глюки(или почти все...) программ. Быдлокод
> написать в разы проще.
Зато позволяет писать драйвера и проч. около аппаратный утиль.
Спс за ответы, теперь стало всё понятно (в теории, на практике предстоит проерить)
oistalker
> Зато позволяет писать драйвера и проч. около аппаратный утиль.
Это обычно пишут на Си. Да и обычные программисты этого не делают.
X512
> Да и обычно программисты этого не делают.
Программисты разные бывают, - есть например такая сетевая плата - http://www.elcus.ru/boards.htm (используют военные, в метро, на МКС) - там хоть и есть готовый драйвер, - а все равно без указателей не передашь и не примешь ни байта.
BlackRaven
> 1. Скажите пожалуйста, каково практическое значение использования указателей?
> Скорость, памяти меньше пожирает или что там?
Хе хе. Как можно не знать для чего нужны указатели?
Этот мир стоит на трех указателях!
Что можно делать с указателями? Да все! Все что угодно!
1) Передавать в функции большие вещи. Картинки например. Без указателей это сделать почти нереально.
2) Создавать всякие структуры данных. Списки, деревья.
2) Для работы со строками в "стиле С"(это так Страуструп говорит, а не я). Можно много интересных вещей делать.
4) Указатели на функции позволяют строить города.
И еще много много всего!
О. Федор
> Указатель содержит в себе следующую информацию: тип данных и адрес ячейки с
> данными
Почитайте книжку по С, а потом постите сюда.
Указатель содержит только адрес. Только 4 байта(32 bit системы). И не содержит НИКАКОЙ информации о типе.