以下程序的输出是什么?

时间:2018-05-31 08:33:39

标签: c loops

在终止循环时运行此问题?

#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循环的过程。当它终止它的循环?

1 个答案:

答案 0 :(得分:9)

您的代码的行为是未定义,因为您最终会溢出signed整数类型。

因此,输出可以是任何东西。

(在您的情况下,n 似乎将包裹为负数,因此n > 3条件不再是true。但依赖于此行为:例如,某些架构将钳位 n。)