关于int的问题

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

哦是你

2015-08-22 14:43

double num = 2.5;      //定义浮点型变量num并赋值为2.5    int num2=(int)num;    printf("num的整数部分是%d\n",num2);      return 0; } 这里面的num2的值也是2.5吗,可是num2定义的时候不是int整形吗

写回答 关注

2回答

  • onemoo
    2015-08-22 15:25:16
    已采纳

    num2 是整型,当然不会有小数点,它的值是2。

    你可以省略掉那个括号的:

    int num2 = num;

    赋值(初始化)要求两侧类型相同。不同的话,等号右侧的变量会自动“临时”转换为等号左侧的类型,再进行赋值,这就叫自动类型转换。所以不用手动指定类型(用括号)。

    浮点型转为整型一般是丢弃小数点,所以num的2.5被自动转换为整型2,再为num2初始化。故你定义的整型num2的初值为2.

  • 哦是你
    2015-08-22 16:03:03

    懂了,谢谢

C语言入门

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

926210 学习 · 20797 问题

查看课程

相似问题