ZYLJL 发表于 2022-3-10 17:07:36

这题为啥第二个是11 我看不明白了

#include<stdio.h>
int fun(int x,int y)
{
        static int m=0,i=2;
        i+=m+1;m=i+x+y;
        return m;
}
int main()
{
        int j=1,m=1,k;
        k=fun(j,m);printf("%3d",k);
        k=fun(j,m);printf("%3d",k);
        return 0;
}

zzxhh628 发表于 2022-4-7 18:08:44

static声明会导致局部变量值被保留,所以第二次调用函数是变量值没有变,是在上次函数执行后的值的基础上继续运算的。
页: [1]
查看完整版本: 这题为啥第二个是11 我看不明白了