位制转换题2

输出以下代码结果:

#include <stdio.h>

int main() {
    printf("%f\n", 5);
    printf("%d\n", 5.01);

    return 0;
}

 

结果:

0.000000
1889785610

 

析:

1)5是int型,%f 要接收的参数是 double型,结果5 由4个字节的int型扩展成8个字节的double型,出现了内存访问越界。其结果是未知的。
2)5.01是 double型,结果%d 要接收 的参数是int型,结果只取了5.01内存中的4个字节。输出了一个大数。

 

posted @ 2015-01-13 12:17  阿青1987  阅读(121)  评论(0编辑  收藏  举报