任何人都可以向我解释这个程序输出背后的原因0 0 0 0 0吗?
这里我们使用的是static variable var由于函数调用,其值不会改变.值var将4, 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?