【问题标题】:What does it means to have function calling procedure in place of initialization (for loop)?用函数调用过程代替初始化(for循环)意味着什么?
【发布时间】: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 语句的三个部分的第二部分。
  • initializationconditionchange in variable 可以是任何表达式,包括 fun()(这是一个表达式)。当然,在现实世界中没有人会写出这样奇怪的代码。你运行了这段代码吗?
  • 你做到了:应该 包含

标签: c function for-loop


【解决方案1】:

你的代码相当于:

#include <stdio.h>
int fun()
    {
        static int num=16;
        return num--;
    }

    void main()
    {
      fun();
      while (fun())
      { 
        printf("%d\n", fun());
        fun();    
      }
    }

现在清楚了吗?

【讨论】:

    猜你喜欢
    • 2014-12-13
    • 1970-01-01
    • 2015-12-11
    • 1970-01-01
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 2016-06-08
    • 2010-09-14
    相关资源
    最近更新 更多