私は次のコードを持っています
int main()
{
int arr[3] = {2, 3};
char *p;
p = arr;
p = (char *)((int*)(p));
printf("%d, ", *p);
p++;
p = (int*)(p+1);
printf("%d", *p);
return 0;
}
o / p-2,0
しかし、2番目のprintfで0がどのように出力されているかを知りたいのですが、これらの要素がどのように格納されているかlittle-endian
を記憶しているので、次のようにすべてのことを知っています。4 byte integer
00000010 00000000 0000000 00000000 00000011 00000000 00000000 00000000
したがって、最初のprintf
回答では2を取得しましたが、2番目printf
のポインタはsecond byte
0ですが、現在は整数ポインタですが、最大4バイトのメモリをチェックする必要があるため、0を出力しています。最大4バイトのデータ全体。最大4バイトで3バイトになると思いました。
私が欲しいのは、整数データがprintfによってどのように印刷されているかです。誰でもこれを知ることができます。