您的位置首页百科问答

为什么double类型输入(scanf)用%lf,输出(printf)用%f?

为什么double类型输入(scanf)用%lf,输出(printf)用%f?

的有关信息介绍如下:

为什么double类型输入(scanf)用%lf,输出(printf)用%f?

所以才说明晰函数的参数类型(而不是模模糊糊地想着double变量取地址)很重要。

准确来讲,是scanf里lf要接收double*,f要用接收float*,而printf里无论写lf还是f都是当成double。

明晰一下其实应该就能自己发现答案了

因为float和double可以直接转换,所以可以统一成其中一个。

但是float*和double*不能,就算借助(void*)那也不会有编码上的变化,必须分开处理。