ポインタを定義するには?
ポインタ値と呼ばれるメモリセルのアドレスを記憶する、画像に格納されたポインタは、アドレスとして処理されています。ポインタ変数は、アドレスを格納する変数です。罰金の新しいタイプとしてそれを参照するには通常の変数と同じ。
どのように対処しますか?
32ビットプラットフォームでは、32本のアドレス線があり、2 ^ 32個の順列、2 ^ 32、したがって、プログラマブル(4G)アドレスがあります。最小単位に対処するバイトです。
最下位アドレスがアドレスが示すフェッチ方4バイトの整数変数の合計からです。(ダブル、長い共感)。
32ビットマシン上で、アドレス32は、4つのバイトを格納するアドレス空間を使用する必要がなる0または1バイナリシーケンス(8分の32)であり、サイズは、ポインタ変数が4バイトであるべきです。
同様に64ビットマシンでは、64本のアドレスライン、(8分の64)このようにして8つのバイトを格納するアドレス空間を使用するがあります。
ポインタ型は表します:
+タイプ*(二つのポインタ:int型**、 * 型はintです)。変数の型へのポインタの種類*****型記憶アドレス。
意味のポインタ型:
ポインタ型1 + - 整数:
ポインタ型はずっと一歩離れて前方または後方に行くためのポインタを決定します:バイト単位のアカウントサイズの種類は、加算と減算を指摘しました。したがってインクリメント又はデクリメント次または変数、配列、構造体へのポインタの指すように。。。。
次の例を参照してください。
int n = 10;
int *pi = &n;
char *pc = (char *)&n;
printf("%p\n", pi); ---> 00D8F9D0
printf("%p\n", pi+1); --->00D8F9D4
printf("%p\n", pc); --->00D8F9D0
printf("%p\n", pc+1); --->00D8F9D1
我々はの答えに沿って説明したように
PS:二つのポインタ、ポインタ... 3つのタイプがプラスまたはマイナス1がプラスになるように、自分のタイプを指すポインタであるか、マイナス4バイト。(ポインタフットプリントサイズ4B)
2.ポインタ参照:
ポインタの意思決定の種類、およびどのくらいの時間ポインタ参照(数バイトへのアクセス)への権限、例えば:*ポインタ参照文字だけのバイトにアクセスすることができ、およびint型*ポインタが4つのワードにアクセスすることができますセクション。
int n = 0x11223344;
int* pi = &n;
char* pc = (char*)&n; //解引用只能指向一个空间
*pc=0x55;
printf("%x\n", n); --->11223355
*pi = 0;
printf("%x\n", n); --->0
ポインタ演算
ポインタ - ポインタ:
二つのポインタ要素の代表者間の経験。
例えば:
int a[10];
int *p=&a[0];
int *q =&a[9];
则:p-q=9不是(4*9=36)
若 char *p=(char*)&a[0];
char *q =(char *)&a[9];
p-q=36; //元素个数由指针指向类型决定。
関係ポインタ演算:
規格:要素の後ろに最後のメモリ位置を比較ポインタの配列へのポインタの点を持つ要素のアレイにポイントを許可するが、メモリロケーションの前に最初の要素へのポインタとの比較を可能にしません。
コントラスト:
for(vp=&values[N_values];vp>&values[0];) //比较都是合法的
{
*--vp=0;
}
for(vp=&values[N_values-1];vp>=&values[0];vp--) //vp=-1时比较后不成立然后才退出循环!
{
*vp=0;
}
そして、ポインタの配列:
両方の自然とは何の関係もありません!
最初の配列要素と値が等しいアレイアドレスアドレス:配列と配列の最初の要素の配列名とアドレスとの間の関係。しかし、別の意味で。(アレイ全体、最初のエレメントアドレスプラス要素にわたって増加オーバーアレイアドレスプラスワンプラス)
アドレスシンボルの配列、配列名の代表であり、およびsizeof単独で使用し、シーンの残りの部分は、配列を述べています最初の要素のアドレス。
アレイは、名前の配列を表し、[要素の添字] = *(名+配列要素の添え字)をここで配列名は最初のエレメントアドレスを表します。
二つのポインタ:
ポインタ変数のアドレスを格納します。
ポインタは可変であるので、それが可変であることから、その後、彼は確かにアドレスを持っている、アドレスが、それはまた、アドレス空間へのポインタを保存し、保存することができる2つのポインタです。
関係は表し
個人的な経験:ポインタがセカンダリのアドレスを格納する変数でもポインタ変数であるが、3〜4があるので、常にポインタ例として見られていません。
配列とポインタは重要ではなく、表現の何らかの形で、多くの共通点を持っていません。