gpt4 book ai didi

c - 以浮点格式打印 int 变量

转载 作者:行者123 更新时间:2023-11-30 18:20:07 25 4
gpt4 key购买 nike

我正在使用gcc编译这个:

int a=1;
printf("%d\n",a);
printf("%f\n",a);
printf("%f\n",(float)a);

我得到:

1
0.000000
1.000000

为什么隐式转换会给出错误的输出?

最佳答案

没有转换。printf 不是接受 float 的函数。它是一个接受任何类型的参数列表的函数。

编译器假设给定了一个 float ,并且您看到的基本上是未定义的行为。

没有任何机制可以解析您的输入字符串,然后对每个参数应用自定义转换。您应该非常小心传递给 printf 的内容,因为可以通过这种方式打开漏洞。

关于c - 以浮点格式打印 int 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30706898/

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