いくつかの使用C言語のポインタ


ポインタはC言語、本質の魂です。強力かつ危険なポインターは、適切に大きい使用、良い使用に最適なツールである
潜在的な危険。それは強力なポインタと危険な特性、プラスポインタより難しく、悪いと多くの人々ので、より多くのパッケージがある
言語のハイレベルを、より多くのノーポインタ「存在。」があります このようなJAVA、Pythonの、どこへ行くのポインタを非表示にすることで、ユーザーのタッチをさせませんが、多くの機能と
本質的には、ポインタを使用することですが、ユーザーから隠されて良いパッケージです。

ポインタが良く学べば、そんなに簡単にプログラミングが動きに対処する時期を果たしました。

多くの人々はそれがある限り、より一般的なポインタの本質の理解、より多くのトレーニング、つまり、1 + 1 = 2つのものとして、真実ではありません、難しいポインタそれを見つけます。


ポインタの本質も非常に簡単である:C言語では、ポインタがアドレスにより求めることができるアドレスアドレス、様々なタイプの格納に使用されるデータ型である
ようにポインタ、セルの値を。簡単に言えば、ポインタは、ストアのアドレスです。

 

ポインター強力な理由:プログラムを実行するためには、メモリにロードされなければならないので、あなたが実行したい命令とプログラム
データの使用は、プログラムの実行を制御することができますメモリアドレスによってポインタと、を取得することができますポインタでありますプロセスやデータを使用
して、彼らはポインタが不正なアドレスにアクセスする方法にとして、すべての法的アドレスにアクセスすることができ、一般的には、もちろん、やりたいことができ、それはまた別の話題です。

今、ポインタのいくつかの用途を見てみましょう。
アドレスが格納されているので、C言語では、ポインタの任意のタイプのサイズは、4バイトです。
1
  INT * P; //整数へのポインタの定義は、整数アドレスデータを格納することができる
  INT A = 3;
  p =&;(pは、アドレスAに格納されている、すなわち、P、Pにポイントであります*それは)3であります

2。

  char * p = "ABCDEF"; //文字ポインタは、P(a)は、アドレスの最初の文字に格納され、* P ==;

3.
  INT A1 [10]; //整数配列、A1は整数格納する配列(INT)のデータである
  INT * P1 = A1;ポインタの//配列、P1は、整数データを格納するポインタアドレスであります

  INT [10] * A2; //ポインタ配列、A2配列、ポインタを整数(INT *)データに格納されています

  INT(* P2)[10]; //ポインタ配列、p2がポインタである、それは、の整数データアレイ10を格納するアドレスに格納されます。

4.
  ボイド楽しい(INT、INT)
  {

  }

  無効(* P1)(int型、 int型); // 関数ポインタ、p1は、ボイド戻り値に格納されたポインタで、2 int型の関数のアドレスのためのパラメータ
  P1 =楽しさが; //関数は、関数名があります。アドレス
  P1()。

  一般的な使用法:typedefは無効(*ポインタ)(int型、int型);カスタム型へのポインタ//、型が戻り値を定義することができ、ボイドを表し、2つのint型のポインタパラメータは関数であります


  ポインタP2; // P2は、関数ポインタである
  P2 =楽しい;
  P2()。

前記
  空隙(* A [10])(INT);関数へ//ポインタは、Aは配列であり、「[」、「*」大型より優先し、第1のA「[」バインディング、データが格納されて返すため関数ポインタの空隙、int型のパラメータがあり、

前記
  空隙(*(* P)[10])(); //ポインタ配列は、pがポインタである(ボイド戻り値格納部10、引数なしの関数ポインタデータ)アドレスアレイ

7.
  二つのポインタ:自身のポインタを表すデータに格納されたポインタ。

  文字** P; //ポインタ2

  チャー*列str [2] = { "ABC"、 "DEFG"]; //文字列の配列

  P = STR; // pは** P文字「H」であり、2つのポインタアドレスストレージアレイが、* pはポインタが最初の文字列の最初の文字のアドレスであります


8。

  ポインタは、加算および減算することができます

  [10] INT;
  想定
  [0]住所:1000(10進数)
  [1] A住所:C言語のように1004の// INT 4つのバイトは
  1008 [2]でアドレス

  INT * P =;名前が配列の最初の配列要素のアドレスであるため、// P [0] 1000番地に格納されます。

  P ++; // Pは、現時点では1ずつインクリメントされていない1001なり、このときのP 1004であるべきで、ポインタ減算は、データ型の加算または減算によって占有されるバイト数である
           ので、4つのバイトとして// INT次の要素へのp ++ 1004ポイント。である[1]


9。

  多くのポインタの使用法がありますが、いくつかは複雑であるが、本質は彼らと手の力、それはあなた次第ですどのようにと、同じである
  オンデマンドでは、執筆時点でプログラムを果たしました。

  ここでも、使い慣れた何かのように、より多くのように多くのトレーニング、より一般的であると。

 

おすすめ

転載: www.cnblogs.com/duichoumian/p/11106548.html