egyszerû: az int 2 byte-os
Az int a gcc alatt soha nem volt 2 bájtos, hanem 4 bájtos. Ha nem hiszed:
printf(„int mérete: %dn”, sizeof(int));
*(char *)&x
ez 3 részbõl áll össze:
&x: az x változó címe
(char*)&x: az intre mutató pointer átállítása char típusra mutatóra
*(…): a zárójelben levõ mutató átkonvertálása hivatkozásra
így talán kicsit jobban érthetõ:
*((char *)(&x))
Kizárólag a lényegét tekintve a (char)x -re hasonlít, de nem értéket konvertál, hanem az x változó legelsõ bájtját adja vissza.
Az (int)1 érték így tárolódik a memóriában (a címek növekvõ sorrendben vannak, 0. 1. 2. 3. bájt):
Little-endian: 01 00 00 00
Big-endian: 00 00 00 01
legutóbbi hsz