|
22 / 22 / 4
Регистрация: 07.11.2011
Сообщений: 154
|
|
Понимание для чего вообще нужны указатели?12.11.2011, 20:12. Показов 33675. Ответов 112
Метки нет (Все метки)
Сейчас будет чистый мой тупняк. Слабонервным дальше не читать. Итак, для чего вообще нужны указатели? Я вот не пойму, зачем их надо было вообще придумывать??? Не понимаю их конкретной пользы, смысла. Кто-нибудь может по-человечески объяснить?
1
|
|
| 12.11.2011, 20:12 | |
|
Ответы с готовыми решениями:
112
Для чего нужны указатели?
Ссылки и указатели, для чего нужны те и другие? |
|
Заблокирован
|
|||||||
| 12.11.2011, 20:32 | |||||||
Я уж не говорю о том, а как быть с памятью, выделяемой динамически?!
1
|
|||||||
|
|
|
| 12.11.2011, 20:48 | |
|
Я тоже раньше думала, что указатели - это что-то сложное, пока не прочитала одну статью про то как работает программа с памятью на низком уровне.
0
|
|
|
|
|
| 12.11.2011, 21:07 | |
|
Без указателей можете вычеркнуть все списки, стеки, деревья, которые располагаются в памяти не последовательно (в отличие от массивов), вычеркните динамические массивы, да собственно и обычные массивы, так как они тесно связаны с указателями. И что вы получите, задайте себе такой вопрос. Получится обычный калькулятор.
0
|
|
|
22 / 22 / 4
Регистрация: 07.11.2011
Сообщений: 154
|
|
| 12.11.2011, 21:13 [ТС] | |
|
Да понял я) но все равно не понимаю) я понял предназначение указателей, но не понял их смысл. Для меня все ещё это что-то сложное.
0
|
|
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
| 12.11.2011, 21:16 | |
|
указатель не есть чтото необычное - это синтаксическая надстройка над командами ассемблера работы с памятью
0
|
|
|
Заблокирован
|
||||||
| 12.11.2011, 21:28 | ||||||
|
Вообще, указатели в современное время почти ниодин уважающий себя программист не использует,
так как ныне памяти у компьютеров хоть отбавляй, а путаницы с этими указателями ооочень много. Вот, например классический пример утечки памяти из-за применения указателей (язык С++):
Но, тем не менее на основе указателей основано множество интересных методов, например сортировка массива с использованием бинарного дерева.
0
|
||||||
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
| 12.11.2011, 21:30 | |
|
mc.Duck, смарт-поинтеры не изобрели?
0
|
|
|
Заблокирован
|
|
| 12.11.2011, 21:38 | |
|
Thinker, указатели - прошлый век! Сейчас надо голову над другим ломать, над чем-то более
современным. Без указателей всегда можно обойтись. ![]() Добавлено через 1 минуту alex_x_x, я лишь хотел показать, что использование в программах указателей черевато ошибками)
0
|
|
|
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
|
|
| 12.11.2011, 21:40 | |
|
Написание программ само собой чревато ошибками.
0
|
|
|
Фрилансер
|
|||||
| 12.11.2011, 21:41 | |||||
|
0
|
|||||
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
||||
| 12.11.2011, 21:43 | ||||
|
и иногда очень сложные для разрешения
0
|
||||
|
Заблокирован
|
||||||||||||
| 12.11.2011, 21:46 | ||||||||||||
Сообщение было отмечено как решение
РешениеТы говоришь: "Система! Дай мне мегабайт памяти!" А она тебе отвечает: "Да не вопрос, бери! " На самом деле Система сначала будит искать свободный, никем не занятый кусок памяти. А когда найдёт, ей нужно как то передать тебе знание о том, где этот кусок лежит. Она тебе говорит: "Вот ты просил у меня мегабайт памяти, вот я тебе нашла нужный кусок. Вот его адресс - бери и пользуйся". С точки зрения высокоуровневого программиста на с++, указатель - это самая обычная переменная, задача которой хранить адрес. И когда ты делаешь например так:
Но тебе же нужно не просто знать адрес памяти, который у тебя теперь есть. Тебе ещё нужно как то получить доступ к этой памяти. По сути на руках у тебя есть только указатель на кусок памяти. Но у самого этого куска памяти имени нет. Этот кусок памяти - это не переменная, это просто кусок памяти и все! Теперь смотри дальше. Допустим, у тебя есть собственно ручно написанный класс. Допустим... CColobok Когда ты говоришь системе:
Но тебе же нужен не просто кусок памяти. Тебе нужно получить доступ к самому колобку! Адрес то колобка у тебя есть. У тебя нету имени этого колобка. Понимаешь? Колобок есть, а имени нету. Однако, твой указатель имеет тип. И тип данных указателя подскажет компилятору, на что именно он указывает. Таким образом значение указателя - это где живет колобок. А тип указателя - это что кусок памяти действительно является колобком. Вот и получается, что указатель позволяет программисту работать с объектами, не зная их имен. И работать не с переменными, а напрямую с памятью.
8
|
||||||||||||
|
Заблокирован
|
|
| 12.11.2011, 21:51 | |
|
KuKu, полностью с вами согласен.
Добавлено через 2 минуты alex_x_x, да еще найдется над чем голову поломать - WinApi - тоже не так то просты в изучении)
0
|
|
|
22 / 22 / 4
Регистрация: 07.11.2011
Сообщений: 154
|
|
| 12.11.2011, 21:51 [ТС] | |
|
0
|
|
|
Заблокирован
|
||
| 12.11.2011, 21:56 | ||
|
0
|
||
|
22 / 22 / 4
Регистрация: 07.11.2011
Сообщений: 154
|
|
| 12.11.2011, 21:57 [ТС] | |
|
Начал кодить, теперь блин в каждой операции с указателем говорю про себя(уже приелось, похоже):Система, дай мне кусок памяти!
0
|
|
|
|
|
| 12.11.2011, 21:58 | |
Сообщение было отмечено как решение
Решение
4
|
|
| 12.11.2011, 21:58 | |
|
Помогаю со студенческими работами здесь
20
Для чего нужны и зачем использовать smart-указатели? Что за драйвера такие, для чего они и нужны ли они вообще? С чего начать для понимание PHP
Понимание звуковой волны , да и вообще волн в целом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|