какой смысл указателей в объективном языке [закрыто]

Я не могу найти практического использования указателей на объективном языке. Я знаю c # и java, и нет необходимости использовать указатели (это то, что я думаю, и это также рассматривается как код dangoures для c # и java), но теперь я начинаю изучать цель-c, и я не могу понять, почему вы должны всегда создать указатель на экземпляр объекта.

 Alex14 мая 2012 г., 13:59
Точка указателей ... Смешно
 Josh Caswell14 мая 2012 г., 20:11
возможный дубликатObjective-C and Pointers
 Perception14 мая 2012 г., 13:21
О, есть тонныpractical использует для указателей. Теперь, если вы хотите поговорить о плюсах и минусах указателей и ссылок на управление памятью, вы можете перефразировать свой вопрос.
 Paaske14 мая 2012 г., 13:23
Это может быть потому, что Objective-C - это просто слой поверх C, который широко использует указатели. Кроме того, объекты Java по сути являются указателями, просто без *.

Ответы на вопрос(4)

которую вы можете делать с указателями, а с ссылками - не увеличивать их. Поскольку указатель является адресом (который уже был упомянут), изменение его значения делает его указателем на следующий / предыдущий объект в массиве. Это не очень полезно, поскольку вы можете просто использовать следующий / предыдущий индекс в массиве, но в некоторых ситуациях он может привести к крошечному более быстрому коду (хотя и более грязному и более подверженному ошибкам).

Указатели довольно забавные, когда к ним привыкаешь;)

вы хотите, чтобы ваша функция изменила исходный объект, вы должны передать указатель на этот объект. Java и c # передают аргументы по ссылке, поэтому указатели не нужны.

Решение Вопроса

в C # вы на самом деле используете указатели, хотя не явно. Подумайте о делегатах, анонимных типах и т. Д., Сборка мусора в c # также может быть успешной, если вы не управляете эффективным использованием этих ссылочных типов.

в obj-c игровая поверхность немного более открыта. Я полагаю, что этот подход имеет столько же недостатков, сколько и плюсов, именно по тем причинам, которые вы указали выше, относительно опасности памяти gpf и т. Д.

медленно медленно, броская обезьяна :)

Что это просто адрес в области памяти, где хранится объект.

Поэтому, если вы работаете с указателями и передаете указатель на функцию в качестве параметра, вы передаете только адрес, а не весь объект. Это намного быстрее, потому что вам не нужно копировать весь объект, вы просто можете получить доступ к значениям объекта через адрес.

Java также использует указатели, вам просто не нужно беспокоиться о них самих. (Что в некоторых случаях довольно раздражает, если вы не хотите использовать указатели.)

Edit

int nvar=2;
int* pvar=&nvar;

здесь вы можете видеть, что если я возьму ссылку на целое число «nvar», я могу поместить его в указатель на целое число «pvar». Так что это связь между указателями и ссылками (в данном случае на C ++)

 gorgi9314 мая 2012 г., 13:28
Я знаю, что указатели содержат адрес для объекта ... но почему вы не можете просто использовать ссылку, как в C # или Java?
 14 мая 2012 г., 13:37
Как уже упоминали другие люди, указатели используются для множества вещей. Полиморфизм, например, возможен только с указателями. Если вы берете ссылку на объект (это тоже может быть целое число), вы получаете адрес объекта, и тогда вы фактически работаете с указателями. Я добавлю кое-что еще в мой ответ выше.

Ваш ответ на вопрос