以下のようなコードにおいてポインタpt_i,pt_c2のさすアドレスは等しいが表示される値が異なります。
なぜこのようなことが起きるのか、説明をお願いしたいです。
c
1#include <stdio.h> 2 3int main(void) { 4 char mychar = 55; 5 int mydt = 1234; 6 7 char *pt_c;![結果](d616fd47cae700cf248058660a9d32f6.png) 8 int *pt_i; 9 char *pt_c2; 10 11 pt_c = &mychar; 12 pt_i = &mydt; 13 pt_c2 = (char*)pt_i; 14 15 printf( "pt_c: %p, %d\n", pt_c, (int)*pt_c ); 16 printf( "pt_i: %p, %d\n", pt_i, *pt_i ); 17 printf( "pt_c2: %p, %d\n", pt_c2, (int)*pt_c2 ); 18 19 return 0; 20}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/22 15:32
2020/06/22 15:38
2020/06/22 15:46