代码如下
# include<stdio.h>
int main()
{
unsigned int a = 0xfffffff7 ;
unsigned char i = (unsigned char)a ;
char *b = (char *)&a ;//让b指向a的地址
printf ("%x, %x\n", i, *b) ;//不懂:*b应该是char类型的,为什么结果会是4个字节?
printf ("%08x, %08x\n", i, *b) ;
return 0 ;
}
/*
result:
f7, fffffff7
000000f7, fffffff7
*/
printf ("%x, %x\n", i, *b) ;//*b应该是char类型的,为什么结果是fffffff7,是4个字节?