#include
union T
{int i;
char c[2];
};
void main()
{ union T a;
a.i=0x00006162;
putchar(a.c[0]);
putchar(a.c[1]);
}
0x61是a,0x62是b
0x00006162這是什麼表示方法?
Intel的處理器是小端的,0x00006162在內存裡其實是 0x62 0x61 0x00 0x00(把00 00 61 62反過來),所以a.c[0]輸出b,a.c[1]輸出a
0x開頭的數字表示這個是16進制,一般用來表示字節很方便,因為正好2個字符是一個字節。
另外C語言還有0開頭,表示八進制。