brook-lv 2015-11-05 03:20 采纳率: 0%
浏览 1644

C语言中的指针转换问题

代码如下

 # 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个字节?

  • 写回答

5条回答 默认 最新

  • wunaidepao 2015-11-05 03:26
    关注

    你是强制它输出4个字节,FF是填充上去的,你设定了08

    评论

报告相同问题?

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100