c - pow(1,0) 返回 0?

标签 c printf pow ansi-c

<分区>

为什么会这样:

printf("%d\n", pow(1,0)); /* outputs 0 */

返回 0?我预计它会返回 1

最佳答案

pow()返回一个 double 类型。您需要使用 %f 格式说明符来打印 double

对提供的参数类型使用不适当的格式说明符会导致 undefined behaviour .检查 C 标准 N1570 (C11) 的第 §7.21.6.1 章。 (是的,这与 C89 无关,恕我直言)

关于c - pow(1,0) 返回 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30669654/

相关文章:

c - 通过 pthread_create 传递整数值

javascript - Math.pow 计算地和功率

java - Math.pow(9, 18) 和 9^18 有什么区别

c - 显示标准错误消息

c - 分析 C : empty report

谁能解释一下这段代码的输出?

c - 在 Windows 中不使用回车符 (CR) 将新行打印到文本文件

c - 一行打印多个\t

c - printf 有符号整数和小数点,带负号的问题

c - 当存在 powl() 时,sscanf() 会导致链接失败