为了账号安全,请及时绑定邮箱和手机立即绑定

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

#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 回答

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

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

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926227    人
  • 解答问题       20797    个

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

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信