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

来源:5-11 变量存储类别

菜菜狠厉害

2019-08-01 21:44

#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 吧? 这个让我注释掉了

写回答 关注

1回答

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

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

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

    weibo_...

    那为什么必须要有外部调用,而删去外部调用后就无法使用了

    2019-09-14 23:45:39

    共 2 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926027 学习 · 20793 问题

查看课程

相似问题