Какова цель использования указателей? - PullRequest
0 голосов
/ 29 января 2011

Я программист на языке ac # / java и не очень много играю с указателями.Мне просто интересно, достаточно ли это полезно для изучения.

Может ли кто-нибудь объяснить, почему и чем именно указатели помогут программистам c # / java?

Ответы [ 3 ]

3 голосов
/ 29 января 2011

Вы уже используете указатели все время. Каждая не примитивная переменная в Java (и, вероятно, также C #, хотя я менее знаком с ней) является указателем на объект.

Возможно, вы хотите спросить о арифметике указателя ?

2 голосов
/ 29 января 2011

Поскольку указатели позволяют вам фактически обращаться к ОЗУ вручную (это невозможно в Java или в «безопасном» C #), и они позволяют вам контролировать распределение объектов.

Переменные, которые «хранят» объекты в C # и Java, действительно содержат указатели (также слабо называемые ссылки ) на объекты в памяти, поэтому классы называются «ссылочными типами». Структуры, напротив, являются «типами значений», поэтому структурные переменные в действительности содержат сами данные. Указатели позволяют динамически выделять и получать доступ к памяти без каких-либо проверок безопасности со стороны компилятора - они дают вам некоторое потенциальное повышение производительности, но они обременяют вас проверкой кода и обеспечением его правильности.

Причина этого немного неуловима: вам нужны указатели, поскольку для использования памяти вам нужно знать размер памяти, который вам нужен во время компиляции. Но, конечно, вы никогда не можете быть уверены, что пользователь не будет пытаться загрузить файл размером 100 МБ в вашу программу, которая была рассчитана только на обработку 20 МБ, и, с другой стороны, вы не можете зарезервировать так много с самого начала (подумайте о том, что произойдет, если все зарезервируют все ресурсы). Таким образом, вы просите операционную систему выделить для вас блок памяти и указать адрес его первого байта, и поэтому нужны указатели. (Существуют и другие способы использования указателей, например отображаемые в памяти файлы и устройства, но это сделает публикацию более длинной.)

В приложениях, критичных к производительности, а также в приложениях, в которых много ошибок, часто используются указатели. :)

1 голос
/ 29 января 2011

Я думаю, что, понимая указатели, вы лучше поймете, что на самом деле происходит на вашем компьютере, что там происходит и как ваши программы на самом деле могут работать.

Если вас это не волнует, ипросто хотите, чтобы ваши Java-программы работали, вы можете их пропустить;в противном случае я думаю, что они помогут вам с программированием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...