我是 C 语言的初学者,当我尝试编写这样的代码时:
printf("\n Answer : %d \n", 12* pow(2,1));
我总是得到答案:0 但是当我像这样写一个 float 时:
printf("\n Answer : %f \n", 12* pow(2,1));
我得到:答案:24.0000
有人知道为什么会这样吗? 我的意思是为什么十进制打印为 0? 太感谢了。
最佳答案
你看到的是Undefined Behaviour的结果.
printf
期望的类型与传递的类型不匹配。
说明符 "%d"
必须匹配 int
类型的值,但匹配您在表达式中提供的 double
类型的值.
一切皆有可能。
关于c - 当我尝试打印幂函数的结果时,我总是得到 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28798520/