问答详情
源自:2-9 强制类型转换

C语言强制类型转换结果异常

#include <stdio.h>
int main()
{
    double num = 2.5;      //定义浮点型变量num并赋值为2.5
    (int)num;
    printf("num的整数部分是%d\n", num);  
    return 0;
}

其结构为什么是-748043384 而不是2 

ps:经过重试 结果为随机数

提问者:arafatttttt3416744 2016-05-30 08:27

个回答

  • 越飞越高
    2016-11-10 13:28:26

    没有正确把浮点型num的值转换成整型,导致系统无法识别,使输出num的值为系统中随机的值

    http://img.mukewang.com/5824057600010e1f09680570.jpg

  • 3173hehehe
    2016-05-30 09:21:41

    #include<stdio.h>

    int main(void)

    {

        double num=2.5;

        printf("num的整数部分是%d\n",(int) num);

        return 0;

    }

    int num;只是在这一个声明中将num的整数部分显示出来了,但是并不改变本身num的值。

  • 慕标3623676
    2016-05-30 09:13:18

    #include <stdio.h>

    int main()

    {

        double num = 2.5; 

        int j=(int)num;

        printf("num的整数部分是%d\n", j);  

        return 0;

    }

    强制转换是把原值转换后赋给另一个变量  而你最后的输出语句还是输出num 还用的是%d可能会不正确  我做了以上调整 系统可以按着你的要求输出了    我也是初学者  一起研究 愚见勿喷