首先说,这样写是没有问题的.
但其实程序隐含的进行了一次数据类型的隐式转换.
因为0实际上是一个 int类型,赋予double类型的a的时候,需要把(int)型的0转换成(double)型的0,然后赋给a.
int -> double的转换是允许的,因为后者的范围大于前者.
所以这样写定义没有问题.就是说这样定义更准确 double a=0.0; 是吗?其实写成double a = 0是完全可以的。:)有一点需要注意了,比如说想把2/5赋给a的话,不能写成double a = 2/5,而一定要写double a = 2.0/5.0,因为先做2除以5的话是按整数做的,2/5就等于0了。