读书人

指针类型的转换,该怎么解决

发布时间: 2012-03-27 13:44:24 作者: rapoo

指针类型的转换

C/C++ code
#include <stdio.h>int main(void){    unsigned int a = 0xfffffff7;    unsigned char i = (unsigned char)a;    char * b = (char *)&a;    printf("%08x\n%08x\n", i, *b);    return 0;}

运行结果:
C/C++ code
i  = 000000f7*b = fffffff7


问题就是关于*b的,b是一个指向char型的指针,将&a解释成(char*)的类型,从而*b也就是a的最高位的那个字节,所以我感觉*b结果应该是0x000000ff,那里错了?

[解决办法]
引用楼主 chikuang110 的帖子:
问题就是关于*b的,b是一个指向char型的指针,将&a解释成(char*)的类型,从而*b也就是a的最高位的那个字节,所以我感觉*b结果应该是0x000000ff,那里错了?

[解决办法]
引用楼主 chikuang110 的帖子:
C/C++ code
#include <stdio.h>

int main(void)
{
unsigned int a = 0xfffffff7;
unsigned char i = (unsigned char)a;
char * b = (char *)&a;

printf("%08x\n%08x\n", i, *b);

return 0;
}
运行结果:
C/C++ code
i = 000000f7
*b = fffffff7
问题就是关于*b的,b是一个指向char型的指针,将&a解释成(char*)的类型,从而*b也就是a的最高位的那个字节,所以我感…

读书人网 >C语言

热点推荐