私は下に書かれている小さなプログラムをテストしました。私の質問は、値へのポインタと最初のポインタへのポインタの間に12バイトの違いがある理由です。しかし、他のポインタアドレス?8バイトの唯一の違いは、すべてのtime.I、このプログラムを複数回実行し、常に私は、これは誰もが理由かもしれないものを私に説明しdifference.Can見ている事前に感謝を...ポインタのアドレスの値のバリエーション
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int val;
int *ptr;
int **ptrptr;
int ***ptrptrptr;
int ****ptrptrptrptr;
int *****ptrptrptrptrptr;
val=10;
ptr=&val;
ptrptr=&ptr;
ptrptrptr=&ptrptr;
ptrptrptrptr=&ptrptrptr;
ptrptrptrptrptr=&ptrptrptrptr;
printf("Value-%d\n",val);
printf("Value address - %d\n",ptr);
printf("Pointer address - %d\n",ptrptr);
printf("Pointer Pointer Address -%d\n",ptrptrptr);
printf("Pointer Pointer Pointer Address -%d\n",ptrptrptrptr);
printf("Pointer Pointer Pointer Pointer Address -%d\n",ptrptrptrptrptr);
return 0;
}
結果は以下のとおりです。
Value-10
Value address - -1308521884
Pointer address - -1308521896
Pointer Pointer Address --1308521904
Pointer Pointer Pointer Address --1308521912
Pointer Pointer Pointer Pointer Address --1308521920
ホワイ・コンパイラー、どのリンカー、どのプロセッサー? 32または64ビット? int - とは何ですか?それは本当に重要ですか?あなたはどうやって気づきましたか? –
最初のintをlongに変更することは、あなたが期待している通りに面白いことです。 – strkol
ああ、その長い間働いています... :) – Teja