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

请问这两者的区别?

double a = 2.5;
int b = (int)a;

double a =2.5;
int b = int a;
这二者有什么区别吗?输出结果好像是一样的。

提问者:Drawlight 2015-09-26 20:17

个回答

  • onemoo
    2015-09-26 20:57:10
    已采纳

    你确定都有输出吗!? 后面的写法可是不合法的!

    double a = 2.5;  a是个浮点型变量,初值为2.5。

    int b = a 和 int b = (int)a 都是定义了一个int型变量b,并且用a来初始化。这两种写法都正确,在赋值(初始化)时两侧变量类型不一致的话,等号右侧的值的类型会临时转换为等号左侧的类型,所以有没有写上强制类型转换都一样,b的初值都是2。

    int b = int a 这语句是不合语法的,不能在a前再直接加上int。