【发布时间】:2018-01-17 11:43:37
【问题描述】:
在运行此代码时,我遇到了一个浮点异常。
为什么没有打印文本zero divison error?它应该被打印出来,因为printf("zero divison error") 在被零除之前执行。
#include<stdio.h>
int main()
{
int p=0;int a=2;
printf("zero divison error");
printf("%d",a/p);
// why zero divison error is not printed?
// i am getting floating point exception(core dumped).
}
【问题讨论】:
-
谁应该“打印”错误?当然这是运行时错误,因为分母在运行时会得到不同的值。
-
标题与帖子中的问题不符。你到底在问什么?
-
除以零是 未定义的行为(对于非 IEEE 环境中的整数类型或浮点数) - 标准没有说它会引发异常
-
严格来说,C中没有运行时错误。任何可以编译的东西都可以运行,但是如果它调用未定义的行为,任何事情都可能发生
-
请将程序的输出复制/粘贴到您的问题中。换句话说:当运行时错误发生时,你的程序到底打印了什么?
标签: c