”通信用語の基礎知識”にエンディアンの判別プログラムが掲載されていたのですが、
どうしてもプログラムの内容が理解できません。なぜ型変換をしたりするんでしょうか?
どなたか解説をお願いいたします。

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i = 1;
if(*((char *)&i) == 0x01)
printf("リトルエンディアン\n");
else if(*((char *)&i + sizeof(i) - 1) == 0x01)
printf("ビッグエンディアン\n");
else
printf(">謎<\n");
return EXIT_SUCCESS;
}

http://www.wdic.org/?word=%A5%A8%A5%F3%A5%C7%A5%A3%A5%A2%A5%F3%A5%CD%A5%B9+%3ATECH