static静态变量理解

例:输入数字x,计算x!

  考虑使用静态变量static int f=1,该值只在编译的时候进行初始化,在后期函数执行的时候不进行变换,故可进行阶乘计算

#include<iostream>
#include<stdio.h>
#define MAX 1005;
#define N 25
using namespace std;

int fac(int n)
{
    static int f=1;//静态变量f,只在编译的时候初始化f=1,之后循环执行的时候不再执行初始化,故可以迭代计算阶乘
    f=f*n;
    return f;
}

int main()
{
    int x;
    scanf("%d",&x);
    for(int i=1;i<=x;i++)
    {
        printf("%d!=%d
",i,fac(i));
    }
    return 0;
}
原文地址:https://www.cnblogs.com/LocaEtric/p/13935041.html