小编C_b*_*ner的帖子

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

任何人都可以向我解释这个程序输出背后的原因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
查看次数

在printf语句中使用*

任何人都可以向我解释这些输出背后的逻辑吗?我猜这里*用作抑制字符,但我无法弄清楚输出.

main()
{
char *s="hello world";
int i=7;
printf("%.*%s",s);
}
Run Code Online (Sandbox Code Playgroud)

输出:%s

如果你替换printf语句,printf("%,*%s",s)那么你的输出将是*hello world ???

c

0
推荐指数
1
解决办法
762
查看次数

标签 统计

c ×2

recursion ×1

static-variables ×1