Без указателей никак. Думаешь, та-же структура передаётся целиком? - хер там - только указатель на неё передаётся всегда. Тот-же массив - указатель на область памяти. Каждый элемент массива - смещение относительно его начала. Как без указателей?
Еслиб не было указателей, то каждый раз передавались бы метры данных. Представляешь какие это тормоза?
Другие языки программирования и технологии
Зачем нужны указатели в c++? Нельзя ли обычными переменными пользоваться?
>Зачем нужны указатели в c++?
Для доступа к куче.
>Нельзя ли обычными переменными пользоваться?
Можно, пока задача позволяет.
Для доступа к куче.
>Нельзя ли обычными переменными пользоваться?
Можно, пока задача позволяет.
Если ты создал объект некоего человека, то вероятно ты хочешь работать с одной и той же его версией в разных участках кода, а для этого нужно поместить его в кучу (в памяти) и передавать ссылку на объект. Если же ты работаешь без ссылки, то значит работаешь с разными объектами, изменения которых друг на друга никак не влияют.
Что бы было быстрее и экономней, можно создать указатель на массив и передать его в функцию и обращаться через него, что бы что-то сделать с массивом. И не нужно копировать массив и возвращать его значение через функцию. Так быстрее и меньше памяти используется.
указатели дают огромные возможности.
Например, есть игра, гонки.
Там могут быть разное количество соперников.
например от 1 до 120
да, можно создать массив из 120 объектов, но зачем это держать в памяти?
можно грузить всё динамически. Прямо по ходу игры, изменять количество автомобилей. Причём, количество авто уже может быть не ограниченным.
для этого нужно создать указатель, и выделить память для него. Главное нужно каждый раз освобождать память, чтобы оперативка не заполнилась.
ещё, когда указываешь в аргументах переменные, они копируются. А в качестве переменной могут выступать огромные массивы данных. И каждый раз копировать эти данные очень плохо.
Когда важна скорость программы, нужно использовать либо ссылки, либо указатели. Когда используются они, то, в аргумент просто передаётся адрес памяти.
Адрес типа 0x00000000 = 32 бита. либо 64 если 64 бит программа. могу ошибаться пусть поправят
Например, есть игра, гонки.
Там могут быть разное количество соперников.
например от 1 до 120
да, можно создать массив из 120 объектов, но зачем это держать в памяти?
можно грузить всё динамически. Прямо по ходу игры, изменять количество автомобилей. Причём, количество авто уже может быть не ограниченным.
для этого нужно создать указатель, и выделить память для него. Главное нужно каждый раз освобождать память, чтобы оперативка не заполнилась.
ещё, когда указываешь в аргументах переменные, они копируются. А в качестве переменной могут выступать огромные массивы данных. И каждый раз копировать эти данные очень плохо.
Когда важна скорость программы, нужно использовать либо ссылки, либо указатели. Когда используются они, то, в аргумент просто передаётся адрес памяти.
Адрес типа 0x00000000 = 32 бита. либо 64 если 64 бит программа. могу ошибаться пусть поправят
Не нужны. Пользуйся обычными
В С++ не нужны, есть умные указатели в std, которые сами себя уничтожат, покинув область видимости.
Похожие вопросы
- да зачем нужны эти указатели ?? C++. Зачем нужны указатели? почему не обойтись без простой переменной??
- Зачем нужны указатели в c++? начал изучать язык C++ и не очень понимаю зачем нужны указатели?
- Для чего нужны указатели в c ?
- Как разыменовать указатель в C++
- Зачем вообще указатели в C++?
- Массив указателей в C++
- Не понимаю указатели в C++
- Для чего нужен указатель this и каков его принцип работы? Объясните пожалуйста самым простым языком, как 2+2.
- Раздел описания переменных в C++: правила задания имени переменной.
- C++ программирование. Булевые (логические) переменные.
Без указателей можно и НУЖНО обойтись, используя ссылки.
Передаёшь по значению — копируется вся структура.