pow(1,0)返回0?

iTa*_*ayb 1 c printf pow ansi-c

为什么这样:

printf("%d\n", pow(1,0)); /* outputs 0 */
Run Code Online (Sandbox Code Playgroud)

回来了0?我期待它回归1.

Nat*_*tta 11

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

对提供的参数类型使用不适当的格式说明符会导致 未定义的行为.检查C标准N1570(C11)的章节§7.21.6.1 .(是的,这没有什么特别的C89,恕我直言)