阅读一些主题我发现了这段代码,我想知道它是如何工作的,因为它是最原始的:
5
2
代码:
static int a = 7;
int test()
{
return a--;
}
int main()
{
for(test();test();test())
{
cout << test() << "\n";
}
return 0;
}
答案 0 :(得分:13)
提交的操作顺序:
a
在启动时全局初始化。到7 test()
将a
递减到6,然后返回先前的值(7),这将被忽略。 test()
将a
递减到5,然后返回通过非零测试的先前值(6),以便for循环可以继续。 cout
声明; test()
将a
减少为4,返回先前值(5),并将其发送至cout
。test()
将a
递减为3,返回先前的值(4),该值将被忽略。test()
将a
递减到2,返回先前值(3),该值通过非零测试并继续循环。cout
声明; test()
将a
减少为1,返回发送至cout
的先前值(2)。test()
将a
递减为0,返回先前的值(1),这将被忽略。test()
将a
递减为-1,返回先前值(0),这将使非零测试失败并且循环终止。现在。从6或8开始循环,看看会发生什么。 = P
答案 1 :(得分:12)
表单的for
循环:
for (a; b; c) {
// stuff
}
相当于:
{
a;
while (b) {
// stuff
c;
}
}