#include <iostream>

using namespace std;

int foo(int n){
    int res = 1;
    for (int i = 1; i <= n; i++){
        res *= i;
    }
    return res;
}

int output(void){//可写可不写
    //静态变量如果不赋值 他一定都是0 和全局变量是一样的
    //他会和全局变量一样空间开到堆空间里
    static int cnt = 0;//静态变量 在函数内始终用的是这个变量
    //静态变量的初始化只会在第一次调用的时候执行
    //第二次调用的时候就不会初始化了
    //等于在函数内部开了一个只有该函数能用的全局变量
    cnt++;
    cout << cnt << "Hello World!" << endl;
}

int main(){
    output();
    output();
    output();
    output();
    output();
    
    int t;
    t = foo(5);
}