2016-12-31 5 views
-3

Большинство современных компиляторов программирования, таких как JAVA и т. Д., Не имеют поддержки указателей. Но в golang google вводят указатели снова. Итак, я просто хочу понять, как указатель влияет на язык программирования? есть ли какой-либо поток безопасности из-за указателей?это хорошо, если у вас есть указатели на языках программирования, таких как golang, C или C++?

, если это из-за безопасности, то почему мы имеем в мире наиболее обеспеченных системы на LINUX и UNIX (оба встроены в C)

+0

указатели также делают вызов по ссылке много eaiser, так как мне не нужно делать какие-либо объекты для этого –

+0

C# имеет тип указателя. – BLUEPIXY

+0

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

ответ

2

TECHNICALLY, все языки использование указатели. Когда вы создаете экземпляр объекта в Java или C# или Javascript и передаете его методу, вы фактически передаете указатель на кусок памяти, содержащий этот объект, с помощью которого вы будете манипулировать данными на этой части памяти. Представьте себе язык, на котором вы НЕ МОЖЕТ ПРОХОДИТЬ ПО ССЫЛКЕ. Ты бы не смог многое сделать, не так ли? Всякий раз, когда вы проходите по ссылке на любом языке, вы - в самых основных терминах - используете прославленные указатели.

То, что вы, вероятно, имеете в виду, однако, это «почему выставляете указатели людям, они намного сложнее» или что-то в этом роде ... И ответ, вероятно, - скорость и традиция. Некоторые из самых быстрых языков у нас есть C и C++ ... Они существуют довольно долгое время. Они испробованы и верны, и люди знают, как их использовать. Большинство программ основано на них так или иначе. Большинство операционных систем написаны на C или их некоторых вариантах. Даже другие языки программирования.

КАК ДЛЯ ВАШЕГО ПРИМЕРА, we have already had a question on that..

0

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

Эти проблемы могут быть защищенно защищенными для предотвращения, но для этого требуется, чтобы пользователи были осведомленными и прилежными.

+1

, то почему у нас большая часть ОС построена на C –

+0

, а UNIX и LINUX более безопасны, чем окна и андроиды, которые строятся поверх C# и java –

1

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

+0

вам не кажется это также плохо, думаю, потому что я теряю контроль пропускной способности своей системы. –

+0

Дело в том, что на каждом языке есть цель. JAVA и C# лучше подходят для бизнеса, потому что разработка просто и быстрее. В то время как C и C++ лучше подходят для критически важных программных продуктов, таких как операционные системы и игры. – user7358693

2

Указатель C/C++ работает. Пример

void f(int* a) { 
    a++ 

Непосредственная работа - опасность.

Но, указатель Голанг не работает.

Итак, одно и то же имя означает «указатель».

Но, есть разница как использовать.