記事のディレクトリ
まず、理解ポインタの基礎、5つ星の重要な指標
変数からなる:変数のアドレス、変数名、変数の値は、
私は10を= int型
第二に、ポインター
2.1は何ですか
ポインタ間接により、この変数を変数のメモリのアドレスを格納するためのポインタ
例えば:INT * P; int型の変数に整数ポインタ変数p、ポイントを宣言
コード例
I点への実装ポインタ変数p
int i= 10;
int *p; //声明一个整型指针变量p
p=&i;//将i的地址赋给指针变量p
P =&Iは、&アドレス、変数iの撮影のアドレスとして採用
コードを示す
ポインタ変数自体は、変数の値が変数、そこ可変アドレス、変数名であるので、
図から分かるように、変数Iに格納されているポインタ変数p値
2.2ポインタ操作変数を使用する方法
iが変数iを変化させることにより可変、その変数* p値である変数の値を表す* Pの使用
特定のコード
int i= 10;
int *p; //声明一个整型指针变量p
p=&i;//将i的地址赋给指针变量p
*p=11;
cout << i << endl;//输出i=11
*サプリメントの使用
- int型* P(*変数名型名):*はポインタ型を示し、
- P *(*変数名):*間接演算子を示し、
2.3なぜポインタを使用
子供用の靴がありますが、頼むかもしれない変数名は私が直接、変数の値を変更することができ、そしてなぜそれをポインタ経由
実際には、変数の変数名の値を変更することで、だけでなく、訪問のアドレスの半ばまで
スタックの観点から以下の動作
例えば
int *ip; /* 一个整型的指针 */
double *dp; /* 一个 double 型的指针 */
float *fp; /* 一个浮点型的指针 */
char *ch; /* 一个字符型的指针 */
ポインタ変数IP、DP、FP、一般的に4バイトのメモリ空間をCHであり、実際のデータ型のすべてのポインタ値は、長い進メモリアドレスを表しています。
スタックポインタに実行すると、大規模な伝送パラメータが費やした時間を節約することができたときに、それはより速くすることができ、スペースを節約し、スタック領域が非常に小さいことができ、スタックポインタに、実際のメモリは、変数の実行によって占められるよりも小さく、貴重な、大きなデータ圧縮に行くことは不可能です。
第三に、参照
3.1の参照は何ですか
変数参照は、エイリアス、変数の第二名のと等価です
操作の参照、それは操作変数に相当します
見積もりフォーム
- &ブーツ基準にして定義:参照名&タイプ=変数名;
たとえば:LOL英雄連合は名前はありません
型参照名=&変数名を、
ゲーム・LOL =リーグ。
3.2簡単な例を引用
実証された:私は、別名IRはIRは、私の運転の操作に相当されています
#include<isotream.h>
void main()
{
int i =9;
int &ir =i;
cout<<"i="<<i<<" "<<"ir="<<ir<<endl;//i=9 ir=9
ir=20;//改变ir的值
cout<<"i="<<i<<" "<<"ir="<<ir<<endl;//i=20 ir=20
cout<<"i的地址是:"<<&i<<endl;//i的地址是:0x0012FF34
cout<<"ir的地址是:"<<&ir<<endl;//ir的地址是:0x0012FF34
}
グラフィックコード
Irの操作は、iの操作に相当します
3.3基準点の使用に注意してください
- (1)引用した参考文献を確立できません
- (2)参照の配列を確立することができない、配列参照が確立できません
- (3)ポインタ参照を確立することができる、確立できないへのポインタであります
コード説明
int i=0,a[10];
int &&ii=i; //错误,ii是引用的引用
int &&aa=a; //错误,aa是数组的引用
int &*ip=i; //错误,ip是指向引用的指针
int *pi=&i;
int *&pr=pi; //正确,pr是指针的引用
第四に、ポインタと参照の違い
C ++ 4.1の参照を導入する理由
実際には、本質的には、それが引用されたポインタ不備を改善し、参照ポインタの制約を追加することです
4.2での不備ポインタ
- 操作ヌルポインタ:ポインタが0に割り当てられています
- 操作野生のポインタ:ポインタ初期化されていません
- 無意識のうちには、ポインタの値を変更し、その後、私は、通常のポインタを考えました。
4.3参照ポインタ改善
- リファレンスは、(無野生ポインタことを確実にするために)初期化されなければなりません
- 初期化は、既存の変数のエイリアス(つまりNOT NULLポインタを確実にするため)
- いつも彼の初期化(変わらない保証ポインタ値)のオブジェクトを指すように参照します。