c - 需要帮助理解我的 for 循环是如何工作的

标签 c

#include<stdio.h>

int main(){
    int i;
    clrscr();
    for(i=0,i++,i<=5;i++,i<=2;i=0,i<=5,i+=3){
         printf("%d ",i);
    }
    return 0;
}

这个程序的输出是2,请详细说明逻辑

最佳答案

这个循环等同于:

i = 0;
i++;
i <= 5;

i++;
while (i <= 2)
{
    printf("%d ", i);

    i = 0;
    i <= 5;
    i += 3;

    i++;
}

我猜您以前可能没有遇到过的部分是逗号运算符。用逗号分隔的一系列表达式依次求值,“返回”值是最终表达式的值。例如:

x = (y + 3, ++y, y + 5);

大致相当于:

y + 3;
++y;
x = y + 5;

关于c - 需要帮助理解我的 for 循环是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7415961/

相关文章:

c - 在程序集中存储局部变量

c - 我需要根据文件上有多少元素使用 X 结构,可以吗?

c - 什么是 C 中的 vuint,为什么它在我的微 Controller 中?

c# - 如何使用 WCHAR* out 参数从 C# 调用 C 函数?

c - Doxygen 文档可能的参数值

c - 从文件中搜索和打印字符串时,打印的是每一行,而不是我需要的那一行

跨平台数据文件访问

C printf 在它下面的所有行上导致错误

c - 声明: "node"?中第一个 "typedef struct node { - - - } Node;"的用途是什么

c++ - DB2 用户定义函数和自定义模式