5、ポインタ

1、ポインタを作成します

[1]のポインタが作成され、C ++、かなりのデータを格納するために割り当てられたポインタ点よりアドレスを記憶するために割り当てられたコンピュータメモリ内に存在します。

[2] *の前に、変数にアクセスするための適切なアドレスを決定するために初期化され、ポインタを使用しています。

[3]ポインタ型に数によって鋳造されるアドレスとしてデジタル値を使用します。

int型 * 白金、
白金 = 0xB8000000 ; // エラー 
白金=(int型 *)0xB8000000 ; // 有効

新しいを使用してメモリを割り当てるために2、

Cのように、malloc関数メモリと、C ++が新しいこれも使用することができます。

メモリの新しいブロックの正しい長さを見つけ、メモリブロックのアドレスを返すために、プログラマは、ポインタにアドレスを割り当てる必要があります。

int型* PN =新しいint型;

そのようなメモリを見つけるために、プログラムの新しいint型、ストレージに必要なint型のメモリ、メモリのバイトは、タイプに応じて必要な何を決定する新しいnew演算子を、伝えるとアドレスを返します。

それを呼び出すためにどのような名前のないメモリのブロックにPNポイント、我々は、データオブジェクトへのpnポイントは(ここでは、メモリブロックの代わりに、変数と呼ばれる)と述べました。

削除リリースのメモリを使用して3、

int型 * PS = 新しい新しい int型削除PSを;
 / * ステートメントを超えるメモリがPSを指摘解放し、しかし、PSポインタ自体は削除されません
別のPSポイントは、新しく割り当てられたメモリブロックであってもよい* / 

int型* PS2 =新しい新しいint型、
int型* PT = PS; //同じメモリブロックのポインタへの一般的なポイントを作成しないでください
誤って同じメモリブロックに削除のリスク増加します//
リターン0;

図4に示すように、ダイナミックアレイを作成するために、新たな使用

/ *は、メモリアレイが結合静的(スタティックバインディングと呼ばれる割り当て配列はコンパイル時にプログラムに追加されていることを意味します。時間をコンパイル
新しい使用しているとき、あなたは配列が運用段階で作成される必要がある場合、あなたはまた、実行時に配列の長さを選択することができ、 。と呼ばれる動的バインディング
実行時に作成されたアレイは、ダイナミックアレイと呼ばれる。
* / 
INT * = psome新しい新しいINT [10];戻り最初のエレメントのアドレス//新しい要素、およびpsomeが割り当てる
削除[] psome; / /角括弧プログラムは、あなたが要素へのポインタの代わりに配列全体を解放する必要があります教えて
  • あなたは、割り当てられたメモリは新しいものではありません、削除のリリースを使用することはできません
  • あなたは二度同じメモリブロックを解放するために削除する使用することはできません
  • 新しい[]配列の使用がメモリを割り当てるために、あなたは] [削除使用する必要があります
  • []メモリを割り当てるためのエンティティとして、あなたが使うべき新しいの使用は削除します
  • 削除使用してNULLポインタが安全です
短い TELL [ 10 ]。
coutの << <<教えてendlを。
coutの <<&<<てendlを伝えます。

前記図から、同じことは言うと言う、概念的には、しかし、言う意味&[0]は、メモリの2バイト・ブロック、アドレスのアドレスを伝える・20バイトのメモリブロックを伝えます。アドレス2をインクリメントします+ 1を伝え、&+ 1つのメモリアドレスプラス20を教えてください。

短いポインタ(*ショート)を伝え、そして含む短いに&20個の要素の配列を言う(短い(*)[20])。

 

おすすめ

転載: www.cnblogs.com/gaoyixue/p/11460853.html
おすすめ