double num = 2.5; //定义浮点型变量num并赋值为2.5 int num2=(int)num; printf("num的整数部分是%d\n",num2); return 0; } 这里面的num2的值也是2.5吗,可是num2定义的时候不是int整形吗
num2 是整型,当然不会有小数点,它的值是2。
你可以省略掉那个括号的:
int num2 = num;
赋值(初始化)要求两侧类型相同。不同的话,等号右侧的变量会自动“临时”转换为等号左侧的类型,再进行赋值,这就叫自动类型转换。所以不用手动指定类型(用括号)。
浮点型转为整型一般是丢弃小数点,所以num的2.5被自动转换为整型2,再为num2初始化。故你定义的整型num2的初值为2.
懂了,谢谢