簡単なプログラムを作成しました:
#include <stdio.h>
int main()
{
int s1;
int s2;
int s3;
int *p1, *p2, *p3;
p1 = &s1;
p2 = &s2;
p3 = &s3;
printf("%d\n%d\n%d", p1, p2, p3);
}
このプログラムを実行すると、ポインタp1
のメモリ アドレスが出力されます。興味深いことに、これらの値には. この背後にある理由を知りたいです。アドレスが だけ異なるのはなぜですか?p2
p3
12
12
注: これは、プログラムを実行するたびに発生します。
出力:
多くのタイプの変数で同じプログラムをテストしましたが、得られる結果は..
変数がchar型の場合。
変数が long 型の場合
int array を宣言すると、各配列のサイズは 1 になります。
2 番目に宣言された配列のサイズが 2 の場合、余分な 4 バイトのオフセットが取得されます。