//示例
#include<stdio.h>
int main(){
int i,j;
for(i<4; j=3; j=0){
printf("%d",i);
}
}
//为什么输出是 i=1 的无限 for 循环
最佳答案
Since for
表单循环
for (initialization; condition; increment) {/*body*/}
可以转换为while
循环,如下所示:
{
initialization;
while (condition)
{
/*body*/
increment;
}
}
您的程序可以有效地转换为:
int i,j;
{
i<4;
while (j=3)
{
printf("%d",i);
j=0;
}
}
由于赋值运算符返回被赋值的值(在本例中为:3
),并且任何非零整数值都会被计算为true
,因此您会得到一个无限循环。
至于你得到什么输出..这是未定义的行为,因为你使用了未初始化的变量i
。
关于c - 当未声明的变量传递到 for 循环并更改 for 循环语法时会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50148514/