putchar 和整个代码是如何执行的?

How does the putchar and whole of the code gets executed?

我想要理解前 3 次迭代的代码的枯燥 运行。 代码的输出是:abcdbcdbcdbcdbc.......(无限次)

我知道 for 循环是如何工作的并且 put char also.I 没有干掉 运行 因为我不明白 for 循环中的第三个参数是否会递增。

#include <stdio.h>
int main()
{
    for (putchar('a');putchar('b');putchar('d'))
    putchar('c');

    return 0;
}

putchar always returns the char that you put. So for instance, putchar('a') returns 'a'. With that in mind, let's have a look at how the for 循环有效:

for ( init_clause ; cond_expression ; iteration_expression ) loop_statement

init_clauseputchar('a')。这将打印 a 一次,因为 init_clausefor 循环开始时被评估一次。

cond_expressionputchar('b')。循环中每隔 运行 就检查一次,这就是它总是打印 b 的原因。并且每次都 returns 'b' ,循环永远不会停止。循环只会在 cond_expression 返回 0 或循环退出时停止,例如通过 break.

iteration_expressionputchar('d'),所以每次都打印dloop_statementputchar('c'),打印 c

结果是打印 a 一次,然后是无限量的 bcd。你按这个顺序得到它们的原因是因为在每个 运行 循环中,它首先检查 cond_expression,执行 loop_statement 然后 iteration_expression.

例如:

Initial statement : putchar('a')

Condition expression: putchar('b')

Repeat step: putchar('d')

Loop statement : putchar('c')

现在给你映射code上面的流程图

因为 putchar returns 它打印的字符 b 也满足 true 条件,因此你的 for 循环 运行 无限时间。


Attribution : http://www.equestionanswers.com/c/for-while-do-while-loop-syntax.php