-5 c++
我在turbo C编译器中编译了以下代码
void main()
{
int i =400*400/400;
if(i==400)
cout<<"Filibusters";
else
cout<<"Sea ghirkins";
}
Run Code Online (Sandbox Code Playgroud)
我预期的值"i"的是400,因此,输出应为无限制演讲.但是,我得到的输出是Sea Ghirkins.这怎么可能?
您的类型溢出int:执行此操作的行为未定义.
a的范围int可以小到-32767到+32767.检查值sizeof int.如果它是2,那么它将无法表示400*400.您还可以检查INT_MAX和INT_MIN的值.
使用a long,必须至少为32位.也许本周末你会把自己当作一个新的编译器?