为什么运行中出错?
#include <iostream>int main()
{
int i = i / 0;
return 0;
}
本帖最后由 故乡的风 于 2014-12-20 12:44 编辑
〃忝書γě渎ぐ 发表于 2014-12-20 11:28
int默认是有符号整型,为什么不能为零?
i的类型定义后没给i赋初值,计算时会用i所在内存的值(不可预测的)进行计算。int i = i / 1;就是可行的,而int i = 1 / 0;除数为0,计算会错误。若改为int i = i / 0.0; 0.0虽然为0,但是保存在计算机中,会有很小的偏差(计算机存储存在精度问题),结果导致0.0存储的值并不为0,所以可以计算。同样,double d = d / 0;会先将0转换成double型,存在精度问题,所以仍然可以计算。当然,这些还要看编译器的处理方式,可能有些编译器认为除数为0而报错或提示等。 你好! @故乡的风 int i = i / 0;//不能为0 青春@无限 发表于 2014-12-20 11:23
int i = i / 0;//不能为0
int默认是有符号整型,为什么不能为零? doublei=1.0/0.0;
这个试试
#include <iostream>
int main()
{
doublei=1.0/0.0;
return 0;
}
0不能做分母吧
页:
[1]