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

关于int的问题

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

提问者:哦是你 2015-08-22 14:43

个回答

  • 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

    懂了,谢谢