C语言给出一个浮点数默认是double型,为什么可以把3.14赋给float的变 ...
发布网友
发布时间:2024-10-24 01:02
我来回答
共1个回答
热心网友
时间:7分钟前
C语言可以把double类型的成员赋给float类型,但精度会损失
因为C语言对同种且不同长度的类型是没有检查的
比方说,把long型的整数赋给int类型也是可以的,但后果自负(有可能造成数位丢失或数不准确)
还有把unsigned型的整数赋给int也可以,但二进制最高位为1时存储的值将不是你先前unsigned类型的值
比方说,TurboC当中,int类型的范围是-32768至32767
如果你使用 int a=32768,不会报错,但a的值将是-32768 (二进制1000000000000000)
Java和C#正是因为看到了这些缺陷,所以加了这种检查