我改了一下,为啥输出的结果是 num的整数部分是2

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

幕布斯7025141

2017-12-24 00:47

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

写回答 关注

4回答

  • 星辰I瀚海
    2018-01-21 21:02:04

    你是赋值num后,又将强制转换的(int)num定义给int型的mum,当然输出num整数部分为2了。尽管你将你的num定义给了mum,但输出的最终是它的值而不是名。

  • hibb
    2017-12-28 19:27:31

    你看这个我想你就明白了

    数据类型和表达式都必须加括号,如把(int)(x/2+y)写成(int)x/2+y则成了把x转换成int型之后再除2再与y相加了。

    由此可知:(int)mum即(int)(mum)

  • 在下薛步桧
    2017-12-26 11:05:19

    因为你输出格式里规定:    num的整数部分为.........。      如果你改掉前面的 num 。输出的语句就会改变

  • qq_I_103
    2017-12-24 01:25:56

    强制转换的运算不遵循四舍五入原则,结果是对的

    z3phyr 回复幕布斯702...

    因为输出的文字是你引号里面所写的内容,变化的只有%d,值是你mum的值,你把变量改成什么名字,输出的都不会变

    2017-12-25 02:52:27

    共 2 条回复 >

C语言入门

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

926217 学习 · 20797 问题

查看课程

相似问题