c - 当未声明的变量传递到 for 循环并更改 for 循环语法时会发生什么

标签 c for-loop

//示例

#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/

相关文章:

c - 分别扫描 C 中的句子和数字

Python——迭代一个迭代器两次

r - 循环 Date 或 POSIXct 对象会产生数字迭代器

c - 在 C 中中断 for 循环结束程序

java - 提高此场景性能的方法

c++ - 液晶屏旋转1位位图

c - 显示最少/最常出现的字符的程序

c - 减去两个地址给出错误的输出

C fscanf 输入格式

java - Java 中的数组?