强制类型转换和自动类型转换有什么具体区别吗

来源:2-9 强制类型转换

l卿言

2018-11-29 17:44

#include <stdio.h>

int main()

{

    double num = 2.5;      //定义浮点型变量num并赋值为2.5

    int num1=(int)num;

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

    return 0;

}

这个得出了正确结果,显示运行成功,但是如果这样写

#include <stdio.h>

int main()

{

    double num = 2.5;      //定义浮点型变量num并赋值为2.5

    int num1=(int)num;

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

    return 0;

}

却不行,可是明明求得是num的结论啊,有什么缘由吗,求帮助,谢谢啦!

写回答 关注

2回答

  • 慕斯卡2534401
    2018-11-29 17:57:50
    已采纳

    自动转化是字节小的可以向字节大的自动转换,但字节大的不能向字节小的自动转换,而强制转换转换后不会改变原数据的类型及变量值,只在本次运算中临时性转换。

    你下面一个程序转化num时输入的函数值必须保持一致。

    例如: printf("num的整数部分是%d\n", num); 中num改为num1 与上面的num1保持一致

  • weixin_慕桂英4567869
    2018-12-03 22:40:31

    最后那个你是把num强制转化了num1,应该在输出的时候printf("num的整数部分是%d\n", num1); 注意最后变量名是num1

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926851 学习 · 20803 问题

查看课程

相似问题