gpt4 book ai didi

c - float 混淆 - 我很困惑 float 说明符是如何出现的

转载 作者:行者123 更新时间:2023-12-04 11:09:38 24 4
gpt4 key购买 nike

考虑以下代码片段

    float a=12.2;
printf("%f %d",a,a); //output 12.200000 Garbage value

但是

    printf("%d %f",a,a);//Output Garbage value Garbage Value

我的问题是为什么在第二个 printf 中,%d 和 %f 都给出垃圾值。我知道这是因为我先使用了 %d?..但找不到任何合适的解释..

最佳答案

对数据类型使用错误的转换说明符会调用 undefined behavior .您可能会得到任何预期或意外的结果。

C11: 7.21.6 格式化输入/输出函数:

If a conversion specification is invalid, the behavior is undefined.282) If any argument isnot the correct type for the corresponding conversion specification, the behavior isundefined.

使用 %d 打印 a 的值(float)会导致程序出现未定义的行为。

关于c - float 混淆 - 我很困惑 float 说明符是如何出现的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21329669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com