printf("b=%f,a=%d\n", (float)b, (int)a);
原因很简单,格式串中的 %f 要求对应的参数必须是浮点型,否则输出就不正确。
你已经看到了,输出是 b=0.000000,不正确吧?
整型数据调为浮点型必须使用 (float)b,而不是改一下格式串为 %f 就能做到的。
计算机发现目标数据类型错误,不读取,归零处理
(float)b