相关疑难解决方法(0)

在递归函数的情况下获得的值

任何人都可以向我解释这个程序输出背后的原因0 0 0 0 0吗?

这里我们使用的是static variable var由于函数调用,其值不会改变.值var4, 3, 2, 1在递归调用期间.当var变为零时,递归终止并且控制继续到printf语句.

为什么输出不是1,2,3,4

 main(){ 
      static int var=5;
      if(--var)
        main();
      printf(" %d ",var);
 }
Run Code Online (Sandbox Code Playgroud)

再次,如果您使用if条件,var--那么程序输出将是-1 -1 -1 -1 -1 -1

c recursion static-variables

6
推荐指数
1
解决办法
269
查看次数

标签 统计

c ×1

recursion ×1

static-variables ×1