%f代表单精度浮点型数据(float),%lf代表双精度浮点型数据(double)。答案错了吧?

%f代表单精度浮点型数据(float),%lf代表双精度浮点型数据(double)。答案错了吧?

原理 @马小刀 已经说得很好了。不过我一直觉得 cppreference 那张表写得挺不好的,一会儿写形参的类型,一会儿写实参的类型。也直接导致了「%f 是表达 double 类型的正确写法」这样的说法,如果觉得这样的说法有道理,那么也应该一视同仁,认为「%hd 是表达 int 类型的正确写法」。

其实就是不应该搞双标: