天天看點

static變量隻初始化一次

輸出下列代碼的值

#include<iostream>
#include<stdio.h>

int x = ;
void incre()
{
    static int x = ;

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

void fun()
{
    printf("%d\n",x);
}

int main()
{
    for(int i = ; i < ; i++)
    {
        incre();
    }
    fun();
    return ;
}
           

答案是2 6 42 4

解釋:

1. 靜态局部變量隻在該函數内使用,不能在函數外使用,如果局部變量和全局變量名稱相同,則全局變量在該函數體内被屏蔽

2. static變量隻初始化一次

3. static修飾的全局變量,隻能在該檔案中使用