1. #include<stdio.h> void main() { printf("%f\r\n",5); printf("%d",5.0001); return 0; } 打印结果: 0.000000 920840988 请按任意键继续. . . 解析:因为5为int型,在32为系统中占有4个字节,%f为float型,会从stack中读取8个字节,导致内存访问越界。 下面定义是否有问题: struct a{ int x:1; int y:2; int z:33; } 以为int为4字节,32为,定义33bit会造成越界。