Ayu*_*dey 6 c++ integer-division divide-by-zero c++11 c++14
为了理解c ++中"if"语句的评估顺序,我指的是问题" "IF"参数评估顺序? ".
下面是if语句中的条件以错误的顺序计算的代码.
#include <iostream>
using namespace std;
int main()
{
int t = 0;
if((1 / t) == 1 && t != 0)
{
cout << "0" << endl;
}
cout << "1" << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
结果是1而不是浮点异常.
除以零并不能保证每次程序都会抛出运行时错误.这就是为什么除以零是一种未定义的行为.
作为C标准的状态;
/运算符的结果是第一个操作数除以第二个操作数的商; %运算符的结果是余数.在这两个操作中,如果第二个操作数的值为零,则行为未定义.
至于C++(03-5.6.4);
二元/运算符产生商,二元%运算符从第一个表达式除以第二个表达式得到余数.如果/或%的第二个操作数为零,则行为未定义; 否则(a/b)*b + a%b等于a.如果两个操作数都是非负的,那么余数是非负的; 如果没有,余数的符号是实现定义的
| 归档时间: |
|
| 查看次数: |
517 次 |
| 最近记录: |