为了账号安全,请及时绑定邮箱和手机立即绑定

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

#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 回答

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

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

4 回复 有任何疑惑可以回复我~
#1

菜菜狠厉害 提问者

精辟!
2019-08-01 回复 有任何疑惑可以回复我~
#2

weibo_幕布斯7343980

那为什么必须要有外部调用,而删去外部调用后就无法使用了
2019-09-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信