【发布时间】:2020-11-10 10:50:59
【问题描述】:
#include<stdio.h>
int fun()
{
static int num=16;
return num--;
}
void main()
{
for(fun();fun();fun())
printf("%d\n", fun());
}
for(fun();fun();fun()) 是什么意思?
我所知道的 for 循环是 for(initialization;condition;change in variable ) 和它们(ini..,cond...,chang...) 应该包含(一些具有值的变量,代数条件,..)。
请纠正我。
【问题讨论】:
-
这只是意味着
fun在for语句的所有树部分都被调用 -
你可以想象
for (A;B;C) {D}扩展成A; while(B) {D; C;} -
... 并且它的返回值用于
for语句的三个部分的第二部分。 -
initialization、condition和change in variable可以是任何表达式,包括fun()(这是一个表达式)。当然,在现实世界中没有人会写出这样奇怪的代码。你运行了这段代码吗? -
你做到了:应该 包含