已知:char a;int b;float c;double d;执行语句“c=a+b+c+d”后,变量c的数据类型是

大神帮忙

c的变量类型仍然是前面声明过的float类型。

一个变量的数据类型不会因为计算过程改变。追问

不是运算的时候全部转化为double形吗,,结果不应是double形吗?

追答

虽然在计算过程中所有数字是转化成double类型,得到的计算结果也是double类型,但往c变量的地址里存放时,因c声明是一个float类型,系统只为它开辟了4个字节的存储空间(一个double类型的变量要占用8个字节的存放空间),所以存放的时候又转化为float类型了。
也就是说,系统为变量c开辟的存储空间不会因为计算结果的变化而从声明的4个自动变成8个字节。

温馨提示:答案为网友推荐,仅供参考