这个为什么输出的是5和8而不是4和6呢?

#include<stdio.h>
int fun(int m){
static n=1;
n++;
m+=n;
return m;
}
int main (){
int d;
d=fun(3);
printf ("%d,%d\n",d,fun(d));
}

第一,n是先自增的,所以是3+2
第二,n是静态的,所以是5+3

#include<stdio.h>
int fun(int m){ //m=3 //m=5
static n=1; //n=1 //n=2
n++; //n=2 //n=3
m+=n; //m=m+n=3+2=5 //m=m+n=5+3=8
return m;
}
int main (){
int d;
d=fun(3);
printf ("%d,%d\n",d,fun(d));
}
你是不是蹭热度?