現在C言語のポインタに関して勉強しているのですが、以下のコードを実行すると、ポインタの最後の数字が同じにならないのですがなにか理由でもあるのでしょうか?
ポインタは同じ場所(アドレス)を指し示すと認識しているのですが、そもそも間違っていたりするのでしょうか?
以下のコードを試したところ、アドレスに違いが出たので教えてていただきたいです。
よろしくおねがいします。
実行環境は、
gcc、VScodeのcode runnerを用いています。
c
1#include <stdio.h> 2#include <unistd.h> 3 4int main() 5{ 6 int a = 1; 7 int *b; 8 b = &a; 9 10 printf("Number = %d, Pointer = %p\n", a, &a); 11 printf("Number = %d, Pointer = %p\n", *b, &b); 12 13 *b = 100; 14 15 printf("Number = %d, Pointer = %p\n", a, &a); 16 printf("Number = %d, Pointer = %p\n", *b, &b); 17 18 return 0; 19}
C
1Number = 1, Pointer = 0x7ffee86a87a8 2Number = 1, Pointer = 0x7ffee86a87a0 3Number = 100, Pointer = 0x7ffee86a87a8 4Number = 100, Pointer = 0x7ffee86a87a0 5
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/06 10:50