问答详情
源自:5-11 变量存储类别

这代码啥意思 结果怎么算出来的

#include <stdio.h>
void fn()
{
    static int x = 1;   //定义静态局部变量
    x*=2;
    printf("x=%d\n",x);     
}

int main()
{
    int i;
    for(i=0;i<5;i++)
    {
        fn();
    }
    //extern int x;      //调用外部变量
    //printf("x=%d\n",x);
    return 0;
}
//int x=100;

 extern int x 是调用 int x = 100 吧? 这个让我注释掉了

提问者:菜菜狠厉害 2019-08-01 21:44

个回答

  • 小小疾飞
    2019-08-01 22:03:57
    已采纳

    x是静态的,那么就不会虽然函数的调用完而消失,而是保持在那。调用了五次,乘了5次2

    所以是2 4 8 16 32 最后一次调用了外部变量x 所以是100