【发布时间】:2019-12-30 22:09:04
【问题描述】:
谁能给我解释一下这个 C 代码。这是我在考试中为找到输出而提出的问题之一。
#include<stdio.h>
int r()
{
static int num = 7;
return num--;
}
int main()
{
for(r(); r(); r())
printf("%d\n",r() );
}
我不明白 for 循环是如何工作的(条件和递增/递减语句)以及这段代码如何给出这个输出。
Output:
5
2
【问题讨论】:
-
使用调试器。在
r()中的return num--行和printf()语句上设置断点。单步执行代码,您应该会确切地看到该输出是如何产生的。 -
你确定你的代码是写的吗?似乎由于
num在每次调用r()时都被初始化,r()将始终返回7(在return之后将其递减)。 -
@daShier 是的,代码是正确的,它使用'static int num',所以它不会总是'返回'7
标签: c loops for-loop operators decrement