私のコードは次のようになります:
char tDat[]={'a','b','c','d','e','f','g','h'};
printf("%d\n",*(int*)tDat);
最終的に印刷される結果は 1684234849 です。バイナリに変換すると、1100100011000110110001001100001 になります。バイナリを再度テキストに変換すると、
私は得る:dcba。
私の理解では、元は tDat であった tDat を にchar*
変換しただけint*
です。これは、逆参照すると 1 ではなく 4 連続バイトが読み取られることを意味します。ただし、逆参照すると、私が期待したものの逆に対応する整数。なぜ私がabcdを取り戻せなかったのか誰か説明できますか?