ポインタ型を整数型でキャスト

ポインタ型を整数型でキャストするとアドレスの値を得られるらしいー忘れないようにメモ!
確認したくてサンプルコード書いて、たぶん認識はあってると思うんだけど、使い方合ってるのかな・・(^^;)?
警告出てるんだけど、こんな使い方はしないのかな?使い方がよくわからない(^^;)

作ったサンプルコード

int main(void) {
int* p;
int n = 16;
p = &n;

printf("&n=%p\n", &n);
printf("(int)p=%x\n", (int)p);

int* p2 = (int)p;
printf("p2=%d", *p2);
}

実行結果
&n=010FFB70
(int)p=10ffb70
p2=16

警告
C:\Users\hnami\source\repos\0813\0813\ソース.c(18,1): warning C4047: '初期化中': 間接参照のレベルが 'int *' と 'int' で異なっています。



この記事が気に入ったらサポートをしてみませんか?