关于static a=c++,b++;是啥意思啊

2020-05-07 财经 104阅读
上面函数相当于下面的:
int f(int a)
{
int b=0;
static int c=3;
a=c;
c = c+ 1;
b = b + 1;
return a;
}
void main()
{
int a=2,i,k;
for(i=0;i<2;i++) {
k=f(a);
a++
}
printf("k=%d\n",k);
}
main里的for循环说明:
第一次:i=0;k=f(2);此时f(2)的值为3,c=4;
第二次:i=1;k=f(3);此时f(3)的值为4,c=5;这里要注意的是c的值,因为c是static的,
它只被初始化一次。c的初始值是3(第一次调用f的时候),第二次调用f的时候,此时c的初始值变成了4,因为第一次调用f的时候(c=c+1)。
所以得出的结果是:
k=4
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com