1.0e+1
返回afloat
值还是int
值?
当我打印1.0e+1
时,它给出10
,但当我打印sizeof(1.0e+1)
时,它给出8
。
最佳答案
1.0e+1
返回afloat
值还是int
值?
答:没有正如它所写的,它代表一个double
。
吹毛求疵:我们用“代表”这个词代替“回报”
我觉得你很困惑IHMO,您需要知道转换说明符的正确用法。
要打印浮动,您需要使用%f
要打印sizeof
输出,您需要使用%zu
也就是说,打印1.0e+1
意味着打印值,而,sizeof(1.0e+1)
本质上是sizeof(double)
,因为默认情况下,浮点文字是adouble
。
相关,来自C11
标准,第6.4.4.2章
未固定的浮点常量具有类型double
。如果以字母f
或F
作为后缀,则它具有float
类型如果以字母“l或L
作为后缀,则其类型为long double
。
关于c - 值1.0e + 1的类型是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30260830/