(1)
unsigned int a = 0xFFFFFFF7;
printf(" %08x", *b); // 输出 000000F7
(2)
unsigned int a = 0xFFFFFFF7;
char *b = ( char*)&a ; //(unsigned char*)没什么意思printf(" %08x", *b); // 输出FFFFFFF7
区别,说数值转换的时候不要用char ,要用signed char 或者unsigned char。
char用作字符操作,而且做强制转换的时候会有符号位扩充。