static变量只初始化一次

来源:互联网 发布:魔音软件男变女 编辑:程序博客网 时间:2024/05/16 10:44

输出下列代码的值

#include<iostream>#include<stdio.h>int x = 4;void incre(){    static int x = 1;    x *= x + 1;    printf("%d\n",x);}void fun(){    printf("%d\n",x);}int main(){    for(int i = 1; i < 4; i++)    {        incre();    }    fun();    return 0;}

答案是2 6 42 4
解释:
1. 静态局部变量只在该函数内使用,不能在函数外使用,如果局部变量和全局变量名称相同,则全局变量在该函数体内被屏蔽
2. static变量只初始化一次
3. static修饰的全局变量,只能在该文件中使用

原创粉丝点击