システムのエンディアンを判断するコードを検索しようとしましたが、これが見つかりました。
int main()
{
unsigned int i= 1;
char *c = (char *)&i;
if (*c) {
printf("Little Endian\n");
} else {
printf("Big Endian\n");
}
}
このコードがどのように機能するか教えてもらえますか? より具体的には、この型キャストでアンパサンドが必要な理由は次のとおりです。
char *c = (char *)&i;
ポインター c.. に格納されるのは何ですか? i が含む値または i が含まれる実際のアドレスは? また、なぜこれはこのプログラムの char なのですか?