>>783
*((char*)&i) はiのポインタをchar*と見做してその先頭を表す。
char*では連続するバイトが順々に割り当てられるので、
格納されている順に参照される。

sizeof(int)==4 を仮定すると、
littleendian なら [4321] の順に格納されているので、
先頭は4番目のバイトとなる。
bigendian なら [1234] の順に格納されているので、
先頭は1番目のバイトとなる。