の値がi
0 より大きいままになるまで、main()
が再帰的に呼び出されます。0
if条件違反になると。print ステートメントがどのように実行されるか教えてください。実行すると、出力が得られます0000
。ありがとう
void main()
{
static int i=5;
if(--i)
{
main();
printf("%d",i);
}
}
i = 4
call main()
i = 3
call main()
i=2
call main()
i=1
call main()
i=0
print 0
print 0
print 0
print 0
i
であることを覚えておいてくださいstatic
。したがって、関数のすべての呼び出しに共通です。
ローカル静的変数は、最新の変更された値を格納します。main() は再帰的に呼び出すためstatic i
、4 から 0 に変化し、i が 0 になった後、main() の呼び出しを停止して上記のレベルに戻り、printf 0 (現在の i は 0) になります。