谁能告诉我强制转换这几个的区别?

谁能告诉我强制转换这几个的区别?

问题描述:

a=double(a/b)

a=(double)a/b

a=double(a)/b

a=(double)(a/b)

double(xxx)是C++的语法,相当于析构函数构造了一个双精度浮点数,参数为xxx,而(double)是强制转换,这个是c和c++都有的。

a=double(a/b):构造一个(a/b)的双精度浮点数。

a=(double)a/b:先将a强制转成double,然后除以b。

a=double(a)/b:构造参数为a的double,然后除以b。

a=(double)(a/b):强制转换a/b的结果。

每次的算术运算一般是按照最复杂的变量类型进行运算。我们假设a,b是int的 3, 2
a=double(a/b): int / int -> double    3/2 = 1, 1-> 1.0
a=(double)a/b:3->3.0, 3.0/2=1.5
以下类推,