70,036
社区成员
发帖
与我相关
我的任务
分享#include <stdio.h>
int main(void)
{
unsigned int a = 200, b = 1, c = 0;
double d = 0;
c = (a - b)/10.0;
d = (a - b)/10.0;
double myvar = (a - b)/10.0;
printf("c: %f, d: %lf, myvar: %lf\n", c, d, myvar); //myvar的结果不对
return 0;
}
d是个double,
你第1个%f读到的是c和d低4字节拼成的double
第2个%lf读到的是d高4字节和myvar的低4字节拼成的double
第3个%lf读到的是myvar高4字节和栈中的"残余"拼成的double
所以胡乱了