📜  C |存储类和类型限定符|问题19

📅  最后修改于: 2021-06-29 19:08:35             🧑  作者: Mango

以下程序的输出?

#include 
int main()
{
    static int i=5;
    if(--i){
        main();
        printf("%d ",i);
    }
    return 0;
}

(A) 4 3 2 1
(B) 1 2 3 4
(C) 0 0 0 0
(D)编译器错误答案: (C)
说明:函数的所有调用之间共享一个静态变量。给定程序中对main()的所有调用都共享相同的i。在对main()的所有调用中,我在printf()语句之前变为0。

这个问题的测验