While运行这个问题时会终止循环?
#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循环的过程。当它终止它的循环时?
最佳答案
您的代码的行为是未定义,因为您最终将溢出有符号
整型。
因此,输出可以是任何内容。
(在您的情况下,似乎 n
环绕 为负数,因此 n > 3
条件不再 true
。但是不要依赖这种行为:例如,某些架构会clamp n
。)
关于c - 下面程序的输出是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50619985/