指针类型的转换,该怎么解决 发布时间: 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++ codei = 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的最高位的那个字节,所以我感…