2016-12-31 5 views
-3

JAVAなどの最新のプログラミングコンパイラのほとんどは、ポインタのサポートを持っていません。 しかし、golang googleでポインタを再度紹介します。 それでは、ポインタがプログラミング言語に与える影響を理解したいだけですか? ポインタのためにセキュリティスレッドの種類はありますか?golang、CまたはC++のようなプログラミング言語でポインタを持つのは良いことですか?

これが原因で、セキュリティであるならば、我々はLinuxとUNIX上で、世界で最も安全なシステムを持っている理由(両方ともCで構築されている)

+0

ポインタはまた、参照用に多くのeaiserを呼び出すので、このオブジェクトを作る必要はありません。 –

+0

C#にはポインタ型があります。 – BLUEPIXY

+0

私はC#にimplementaionのポインタがあるのか​​どうかを尋ねるのではなく、ポインタがどのようにプログラミング言語に影響するのか知りたいだけです。私はまた、この –

答えて

2

技術的には、すべての言語でポインタが使用されます。 JavaまたはC#またはJavaScriptでオブジェクトのインスタンスを作成し、それをメソッドに渡すと、そのオブジェクトのデータを操作するためのオブジェクトを含むメモリの部分へのポインタが実際に渡されます。あなたが参照することができない言語を想像してみてください。あなたはあまりやることができないでしょう、あなたは今ですか?どの言語でも参照渡しがあるときはいつでも、最も基本的な言葉で栄光のポインタを使用しています。

しかし、おそらく、「人へのポインタを公開する理由、それはずっと複雑です」ということです。その答えはおそらくスピードと伝統です。私たちが持っている最速の言語の中には、CとC++があります...彼らは比較的長い間、周りにいました。彼らは試して真実であり、人々はそれらを使う方法を知っています。ほとんどのソフトウェアは、ある意味でそれらのものに基づいています。ほとんどのオペレーティングシステムはCまたはその変形で書かれています。他のプログラミング言語さえ。

あなたの成功例は、we have already had a question on that.です。

0

ポインタが参照渡しが容易になりますが、違反がより脆弱である、なぜならポインターを介してメモリ位置に直接アクセスすることができ、したがってセキュリティ上の懸念が生じる可能性があります。

これらの問題は、予防するために防御的にコード化することができますが、それはユーザーに知識と勤勉を求めることです。

+1

なぜOSのほとんどがCでコンパイルされています –

+0

そしてUNIXとLINUXはCとJavaで構築されたwindowsとandroidより安全です –

1

JAVAとC#の「現代的な」比較は、プログラマーができる最悪のことです。 JAVAとC#は管理言語であり、メモリがプログラマによって全く管理されていないことを意味します(ポインタの主な機能です).C++はアンマネージ言語であり、C++は管理言語よりもはるかに高速です。ほとんどすべての現代のPCゲームは、どの管理言語よりも速く動作するため、C++を使用して作成されています。

+0

それは私のシステムのスループットコントロールが失われているので、悪い考えです。 –

+0

すべての言語にターゲットがあることです。 JAVAとC#は、開発が簡単で迅速なため、ビジネスに適しています。 CとC++は、オペレーティングシステムやゲームのような重要なパフォーマンスソフトウェアの方が優れています。 – user7358693

2

C/C++ポインタが動作しています。 例

void f(int* a) { 
    a++ 

直接操作は危険です。

ただし、Golangポインタは使用できません。

したがって、同じ名前と同じ意味の「ポインタ」です。

しかし、使い方に違いがあります。

関連する問題