printf不会将整数常量作为争论吗?

时间:2015-12-25 11:40:00

标签: c printf

此代码有什么问题?

while (b2.IsBusy)
{
    if (b2.CancellationPending)
    {
        e.Cancel = true;
        break;
    }
}

由于使用的格式说明符是整数,它应该给出一个整数值。但事实并非如此。为什么这样?

输出 - 0

预期产量 - 1024

3 个答案:

答案 0 :(得分:5)

pow返回double。您使用错误的说明符来打印double值。这将调用未定义的行为,您可能会得到预期或意外的结果。请改用%f

 printf("%f", pow(2, 10));

答案 1 :(得分:4)

pow中的<math.h>函数返回double类型。

double的格式说明符为%f。您使用了错误的说明符,因此您的程序会导致undefined behaviour。从字面上看,任何事情都可能发生。

要解决此问题,请改用%f

顺便说一句,如果你想用2整数来计算10的幂1 << 10,你可以写int[] x = {1, 2, 3, 4}; int[] y = x;

答案 2 :(得分:1)

施放到int

Intent in = new Intent(getActivity(), Opening_Activtiy_Name().class);
getActivity().startActivity(in);