さてと、君等がバイトオーダーの違い(特にLittle Endian)を気にしているようなので・・・
少しだけお話しよう(笑
680X0系のメモリー配置はビッグエンディアンであり上位ビットより配置される。
80X86系のメモリー配置はリトルエンディアンであり下位ビットより配置される。
とまぁ、ここまでは君等の考えている通りだ。
このメモリー配置の違いで一番困るのは通信だ。
相手が異なるバイトオーダーの時、通信で受け取ったデータを
自環境のバイトオーダーで解釈してまうことで問題となる。
では、自環境内でポインターを使うときにバイトオーダーを気にする必要があるのか?
この答えは、気にしないとダメな場面は少ないと言っておこう。
ちなみに
a[6]={"abcde"};
は80X86系の実メモリー配置だと null + edcba となる。
このとき
a[0]には a が格納されている。
a[1]には b が格納されている。
a[2]には c が格納されている。
a[3]には d が格納されている。
a[4]には e が格納されている。
混乱に油を注ぐようだが、これがヒントだ(笑