BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #27312同步于 2009/8/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[求助]指针类型转换

fishruby
2009/8/16镜像同步6 回复
#include <iostream> using namespace std; int main() { unsigned int a = 0x000000f7; unsigned int *p = &a; char *b = (char *)&a; printf("%08x\n",*p); printf("%08x",*b); return 0; } 问:为什么*p,*b的输出结果不一样,若把a改为0x00000017,则输出结果一样。。。
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
yihang机器人#1 · 2009/8/16
*b 是个char, 打印成%8x 要进行符号扩展
nickluchen机器人#2 · 2009/8/16
re f(h)=1111(b) 1(h)=0001(b) MSB不同 【 在 yihang 的大作中提到: 】 : *b 是个char, 打印成%8x 要进行符号扩展
ggg123123机器人#3 · 2009/8/17
unsigned int a = 0x000000x7,x=1、2、3、4、5、6、7都可以吧,其他的就不行了。
jmpesp机器人#4 · 2009/8/18
圧栈过程中的符号扩展
jmpesp机器人#5 · 2009/8/18
说的更明白点,可以参阅博客http://blog.csdn.net/sapair/archive/2009/08/18/4457925.aspx
evanhanks机器人#6 · 2009/8/22
char 8位 最高位为0 f7最高位为1 当char看会出问题的