情况1:
#include <iostream>
int main()
{
double d = 15.50;
std::cout<<(d/0.0)<<std::endl;
}
Run Code Online (Sandbox Code Playgroud)
它编译时没有任何警告和打印inf.好的,C++可以处理除零,(实时查看).
但,
案例2:
#include <iostream>
int main()
{
double d = 15.50;
std::cout<<(d/0)<<std::endl;
}
Run Code Online (Sandbox Code Playgroud)
编译器发出以下警告(请参见实时):
warning: division by zero [-Wdiv-by-zero]
std::cout<<(d/0)<<std::endl;
Run Code Online (Sandbox Code Playgroud)
为什么编译器会在第二种情况下发出警告?
是0 != 0.0吗?
编辑:
#include <iostream>
int main()
{
if(0 == 0.0)
std::cout<<"Same"<<std::endl;
else
std::cout<<"Not same"<<std::endl;
}
Run Code Online (Sandbox Code Playgroud)
输出:
Same
Run Code Online (Sandbox Code Playgroud)