回复 11楼 code力力
可怕的是,我的IDE直接编译过了,没提示注意,更没提示错误。。。。
输出结果检查过了,是4字节的数据,无论赋值的数据类型是float还是double,被赋值的变量a通过sizeof显示都是4,%d输出结果为10,无误。。。。
所以,书里说的,低类型赋值给高类型到底是自动类型转换的?还是需要人工强制类型转换?
自动类型转换的,那printf的a应该提升到了double,但检查显示是int。
那是否编译器以副本的方式操作?先算出表达式的结果double,然后赋值的double的副本变量a,再类型降级回int赋给真正的int a?但这又不大可能吧,太不安全了。
所以,我才说我凌乱了。。。