void main()
{
int i;
int s=0;
while(i<30)
s+=i;
i++;
printf("Sum is %d",s);
}
/输出为 0,如何?我期待无限循环。/
i
未初始化。它可以具有任何值。如果它的值大于/等于 30,则循环将不会执行,s
保持为 0。
void main()
{
int i;
int s=0;
while(i<30)
s+=i;
i++;
printf("Sum is %d",s);
}
i
未正确初始化,导致未定义的行为。将其更改为:
int main(void)
{
int i = 0;
int s=0;
while(i<30) // Infinite loop per OP's expectation
s+=i;
i++;
printf("Sum is %d",s);
return 0;
}
注意(感谢@MikeCAT(:为避免基于实现的混乱,请将void main()
替换为int main(void)
。