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

请问这个程序是在做什么

#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;


正在回答

4 回答

掌握如何定义静态局部变量和怎样调用外部变量的方法

0 回复 有任何疑惑可以回复我~

定义静态局部变量static和声明外部变量extern的用法与理解。

#include <stdio.h>

void fn()                                                   //定义无返回值无参数变量fn()

{

    static int x = 1;   //定义静态局部变量  ,注意:定义后的静态局部变量只赋一次初值

    x*=2;                                //x=x*2

    printf("x=%d\n",x);        

}

int main()

{

    int i;                                         

    for(i=0;i<5;i++)                    //循环调用5次自定义函数fn(),注意:因为fn()中定义了静态局部变量,这个变量

    {                                            //只赋一次初始值,所以第2次调用时就不会执行static int x =1;的语句,而是根据

        fn();                                  //第一次的赋值结果x=1*2=2来继续计算,即第二次结果为x=2*2=4,第三次8,第

    }                                           //四次16,第五次32。如果没有static,那么每次调用都会赋初值,结果也是一样的

                                                 //即x=1*2=2

    extern int x;                        //声明将调用外部变量,这里将X取最后一行定义的外部变量int x=100;结果为100

    printf("x=%d\n",x);                //如果没有extern,则单纯的定义一个x,因为没赋初值,默认为0,结果为0。

    return 0;

}

int x=100;

这道题就是让我们static和extern的作用。

 

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

慕圣6992647

讲的非常清楚,谢谢你!
2016-09-16 回复 有任何疑惑可以回复我~

记录x的数值变化,具体是做什么的要看怎么用

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

开发大脑吧

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问这个程序是在做什么

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