在终止循环时运行此问题?
#include<stdio.h>
#include<conio.h>
void main()
{
int n=12,res=1;
clrscr();
while(n>3)
{
n+=3;
res*=3;
}
printf("%d",n*res);
getch();
}
以上结果是3595.但我不了解while循环的过程。当它终止它的循环?
答案 0 :(得分:9)
您的代码的行为是未定义,因为您最终会溢出signed
整数类型。
因此,输出可以是任何东西。
(在您的情况下,n
似乎将包裹为负数,因此n > 3
条件不再是true
。但不依赖于此行为:例如,某些架构将钳位 n
。)