多printf在对环作为初始化的一部分、条件和更新

0

的问题

任何人都可以向我解释为什么它打印32和整体概念,这是怎么运作的?

#include <stdio.h>

int main()
{
    int a=1;
    for (printf ("3"); printf ("2"); printf ("1"))

    return 0;
}
c loops printf
2021-11-23 21:56:07
2

最好的答案

8

适当的压痕会使它更清楚:

#include <stdio.h>

int main()
{
    int a=1;
    for (printf ("3"); printf ("2"); printf ("1"))
        return 0;
}

因此以下情况:

  • a 初始化 1. 我不知道为什么这个变量存在,因为这是永远不会使用。
  • for 执行将其初始化的声明, printf("3");. 这个指纹 3.
  • for 评估的重复条件, printf("2"). 这个指纹 2 和返回的数字符印刷,这是 1.
  • 由于条件是真的,它会进入人体的循环。
  • 身体的执行 return 0;. 这回报 main(),从而结束循环。

由于循环结束,我们从来没有评估更新的表达, printf("1"),所以它从来没有指纹 1. 我们没有得到任何重复的任何东西。

2021-11-23 22:04:34
0

你知道,一个程序开始运行,从左'{'的主要功能(),端中的权利'}'的主要功能(),如果没有无穷无尽的循环。

作为你的代码显示的,你的困难是要了解该流程图中的循环在C语言。

正如你可以看到,法的循环是:
for (initializationStatement; testExpression; updateStatement)
{
    // statements inside the body of loop
    for loop body;
}
如何用于环工作的?

1.初始化的声明是执行只有一次。

2.然后,测试表达式进行评估。 如果测试表达式进行评估,以虚假的,对于循环终止。

3.然而,如果测试表达的是评估为真正的发言,发言的主体内为循环执行,并将更新的表达是更新。

4.再次测试表达式进行评估。

这个过程中去,直到试验的表达是错误的。 当测试表是虚假的,循环终止。

因此,对于循环流程图

enter image description here

首先,把你的代码作为一个例子:
#include <stdio.h>
int main(){
    for (printf ("3"); printf("2"); printf("1")) break;
    return 0;
}
输出
32

1.初始化 "printf ("3")",然后,打印:

3

2.测试表达 "printf("2")"总是真实的,所以印刷品:

2

3.对于身体的循环 "break",这意味着结束的执行的循环,

不要执行更新后的表达 "printf("1")"

此外,该方案跳出用于环,并且跳跃 "return 0;",

然后,结束了执行这一程序。

因此,该输出

32
其次,把你改变了代码作为一个例子:
#include <stdio.h>
int main(){
    for (printf ("3"); printf("2"); printf("1")) ;
    return 0;
}
输出
321212121212121212...121212...1212...

同样地,

1.初始化 "printf ("3")",然后,打印:

3

2.测试表达 "printf("2")"总是真实的,所以印刷品:

2

3.对身体环 "`"空,然后做什么。 转到更新后的表达

"printf("1")"

4.更新后的表达 "printf("1")",然后,印

1

5.然后,转到试验的表达 "printf("2")",即"2.测试

表达 "printf("2")",这始终是真实的,所以打印"。因为

身体的循环 "`"空,然后一直到从更新

表达 "printf("1")" 测试的表达 "printf("2")",

这就是为什么在印刷之后"32"功能印刷品无限循环

"12".而且,这一职能永远不会结束停止印制"12"除非你

停止这一职能。

因此,这样,所以输出

32121212...121212...121212...
第三,把你的最近改变了代码作为一个例子:
#include <stdio.h>

int main()
{
    int a=1;
    for (printf ("3"); printf ("2"); printf ("1")) 

    return 0;
}
输出
32

1.节目开始运行,从左'{'的主要功能(),

这是初始声明的临时变量

"int a=1;".

这一声明的定义"int"输入临时变"a",并且

设定其价值"1"但那打印什么!

2.然后,程序转到对于循环。

3.初始化语句 "printf ("3")",然后,印

"3",并且

转到试验的表达。

3

4.测试表达 "printf("2")"总是真实的,所以

印"2",并转到对于循环体的表达。

2

5.为循环体的表达"return 0"的表达

"return 0"回'0'来的主要功能(),以及结束

执行主(),但打印什么。

因此,该输出为:

32
结束。 谢谢!
2021-11-24 07:01:53

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................