経験プログラミンググレート神:「本質とC言語のポインタ」!

       多くのプログラミング言語は、「持っていない何のポインタ自分の優位性を促進するために、」しかし、ためにC言語で、ポインタが生まれています。

01、

だから、ポインタは何ですか?なぜ我々はすべて回避ポインタにしたいですか?

       変数としてのアドレスがある場合に非常に単純な、ポインタがアドレスは、である、そう、当然、それはポインタ型で、変数のポインタ型と呼ばれています。

       ポインタアクションは、ポインタ、アドレスで撮影された値へのポインタが与えられます。自然を理解するために、我々は、コンピュータモデルで始まります。

       マクロビュー、コンピュータは、2つのカテゴリに分けることができます。

☄ストレージ-コンピュータの実行。このような機械の典型的な例は、我々が通常使用するコンピュータであり、CPU、メモリ、CPUは、算術論理演算のみ、メモリ内の全ての命令およびデータは、メモリ記憶、計算が任意の成分を含まない含みます。

☄サイトプログラミングコンピュータ。このような機械の典型的な例は、回路ASIC、FPGA本です。論理回路起因直積、汎用コンピューティングに適していないとの問題が、しかし、特定のニーズに直接組み込ま。

       私たちは、私たちが通常使用して店を見て - モデルの実装のコンピュータモードを:

☀ アドレスバス上のメモリアドレスを送信するCPU。

☀ データバスに特定のリターンデータに対応するメモリアドレス。

       汎用コンピュータは、ポインタですべての作業を完了することであることが表示されます。CPUは、それが遠回りに次の操作を行う必要があり、直接メモリの値を操作する能力を持っていません。

§  特定のアドレス値V0 A0から取られました。

§  演算処理V0 V1を生成します。

§   V1は、特定のアドレスA1に格納されています。

       最初に、それはアセンブリ言語であるようなAプログラム、上記の論理に従っています。

       しかし、これはあまりにも面倒で、シンプルな汎用的なUNIXオペレーティングシステムで、C言語が生まれた、次の文では、より便利なように表示されます。

       C言語では、直接マッピングされたCPUを動作し、C言語の芸術である非常に簡単な方法、です。

       これは、バックグラウンドのCのポインタです。当時、人々は助けにコンピュータは、より複雑なビジネスロジックを完了したくなかった、人々はちょうど、コンピュータの抽象的行動にもっと簡単な方法を使用する場合は、最後の結晶化はC言語です。

       我々が言ったので、本質は、ポインタは、すべてのC言語は、C言語のポインタです場合は、他の言語我々は、我々は我々がないために行う、一方で私たちにできることは、ステートメントの場合の切り替えができないことはできませんが、我々は、ポインタを持っている必要があります。

       はい、私たちは、関数の代わりに、ポインタ等の場合には、他を使用して行列を述べることができます。

私たちは、あれば、他に成功回避行列の状態を使用して...

私たちは、とまだポインタを見ることができます。

02、

ポインタが格納されている - コンピュータ作業に必要な条件をモデルの実装のために!

       私たちは、店を見て - 実行の方法をコンピュータモデル:

  アドレス与えられ、CPUは、アドレスのデータをフェッチすることができます。

  アドレス与えられ、CPUはアドレス値に書き込むことができます。

これは何を意味するのでしょうか?

       長いCPUなどとして仕事をしたい、そうでないCPUは、言い換えれば、無用ゲートの山で、CPU、メモリ全体のアドレス空間を露出させる必要がある  すべてのメモリから!オペレーティング・メモリは、ポインタを使用するためにバインドされています!

03、

実際には、C言語は、アセンブリ言語の簡略化されたバージョンです。最後に、C言語のコンパイルリレーポインタは世界を作成しました。

       とにかく、C言語では、コンピュータ指向のプログラミング言語であるビジネス指向のプログラミング言語では、それはそのための方法のコンピュータの仕事とビジネスロジックを記述するには非常に良いではない、ハッカーによるC言語、コンピュータプログラミングなどの職人をマップするのではなく、自分の好きなの愛好家は、しかし、ポインタと一緒に遊んとして見られるようにビジネスのプログラマあまりにも面倒で複雑な行いも、それは間違って行くだろうとは思いません。

       ストレージ-行う問題は、メモリへのアクセスを防止するために、複素バンド機構を設計することモデルで得られた複合体は、セグメント、ページング、アクセス制御、およびMMU機構には、もちろん、それらの機構及びCPUアクセスポインタに依存メモリ作業が競合していません。

       C言語のポインタは、組み込みLinuxカーネルにリンクされたリストである必要があり、ほとんど間違いなく使用したstruct LIST_HEADの:

       それはすべてすることができ、それはC OODによってポインタの完璧な解釈があり、LIST_HEAD世界の基底クラスです!

       container_ofマクロによって、LIST_HEADは、任意のオブジェクトに変換することができます。

       変換の後ろの依存性は、それがポインタです。

       あなたがC言語を十分に活用したい場合は、C言語のプログラミングは、ビジネスに非友好的なまま、以前、それはC言語マッピングのコンピュータ作業そのものであると述べ、理解する必要があるコンピュータの理論を、これはビジネスのプログラマ料理、操作手順ではありませんのみ書き込みビジネスロジックのメンバーは、コンピュータがどのように機能するかを気にしません。

       これらのサービスには何のプログラミング言語のポインタを言うことはできませんが、彼らはポインタそれを隠し、彼らはより多くのプログラマよりビジネス向けのプログラミング・インタフェースと構文、根本的な処理の問題で独自のポインタ、何にさらされています。ポインタは、限り、あなたは使用しているとして、客観的な現実であるストレージを-実行モデルのコンピューター、ポインタがすべてです。

       プログラミングを愛する人のために、小さなパートナーのグループが学ぶために一緒に存在していることは非常に重要です!あなたが興味や必要としているならば、我々はゼロベースのプログラミング入門持つ交流クラブを学ぶだけでなく、ビデオファイルを学習し、少しの友人で歓迎初心者から上級です!

- 終わり -

公開された520元の記事 ウォンの賞賛132 ・は 80000 +を見て

おすすめ

転載: blog.csdn.net/HUYA69/article/details/105142346
おすすめ