Any troubles?
С++ стал изучать недавно. Но вот хоть убей не понимаю что такое указатели и для чего они нужны!! Может ли кто-нибудь подробно объяснить?
Простой пример: у тебя где-то там на диске С есть Ворд, а на десктопе - ярлычок, который хранит адрес Ворда. Хотя сам по себе тоже является файлом. Щёлнешь по нему - откроется Ворд. Вот так и указатель: это переменная, которая хранит адрес другой переменной, и предоставляет доступ к её содержимому. Эдакий ярлычок;о)
А вот для чего это надо можно в нескольких словах объяснить??
Это бывает нужно во многих случаях:
1. Если ты передаёшь функции большой объект и не хочешь тратить время на его копирование
2. Если ты хочешь внутри функции изменять содержимое переменных переданных в качестве аргумента
3. Если ты хочешь создать объект внутри функции и продолжить его использование после завершения функции (Внимание! Память под объект должна быть выделена динамически!)
4. Если размер массива заранее неизвестен и его предполагается выделять динамически
5. Если ты хочешь воспользоваться приёмами арифметики указателей - многие алгоритмы обработки массивов так выглядят значительно изящнее
6. Если предполагается использовать структуры данных - большинство из них невозможно реализовать без указателей
7. Если в программе сложная иерархия классов и ты не знаешь заранее к какому из дочерних классов будет принадлежать объект
А так же во многих других случаях.
На самом деле, указатели (и, заменившие их в некоторых современных языках, ссылки) - один из самых мощных инструментов программирования. Не разобравшись с ними стать программистом невозможно. Так что разбирайся;о)
Оно весьма спорное, однако оно существует
Караидель правильно говорит - без указателей нам как без рук. А ты - "зачем нужны", да ещё и с тремя восклицательными... Обидно даже
Очень спорное мнение. Знаю немало народу, кто понял указатели не с первого раза. Я сама сначала научилась ими пользоваться, потом поняла как они работают, потом выучила ассемблер и ещё раз поняла как работают указатели;о)
А насчёт дано - не дано, это скорее полиморфизм;о) Вот его действительно понимают далеко не все.
Другая по сравнению с чем? Указатели-то начинаются ещё в старом Си...
Даже в банальном php есть указатели
Караидель
В Бэйсике и Джаве нет указателей, только ссылки. А начинающие программеры воспринимают это как данность и далеко не сразу интересуются как это устроено.