永发信息网

C语言静态变量

答案:3  悬赏:50  手机版
解决时间 2021-05-16 08:13
  • 提问者网友:欲望失宠
  • 2021-05-15 16:54

#include<stdio.h>
int  f(int a)
{
 int b=0;
 static int c=3;
 a=c++,b++;
 return(a);
}
void main()
{
 int a=2,i,k;
 for(i=0;i<2;i++)
  k=+f(a++);
 printf("%d\n",k);
}

怎么运算的,结果是4

最佳答案
  • 五星知识达人网友:青灯有味
  • 2021-05-15 17:26

当i=0时,运行f(a++),此时a++取2,a=3.函数中a=c++,b++;a取3,c=4,所以函数返回3,k=f(a++)=3;


当i=1时,运行f(a++),此时a++取3,a=4.函数中a=c++,b++;注意c是静态的所以c=4(保持上次运算结果),所以函数返回4,k=f(a++)=4;


注意这边是k=+f(a++)而不是k+=f(a++);所以K每次被重新赋值

全部回答
  • 1楼网友:一叶十三刺
  • 2021-05-15 17:53

c++  实现使用后加

第一次 运行 是i=0   k=3  这个时候 c=c+1也就是 c在此时为4  然后运行i=1

同样的  c先使用   就是上边的4 输出的k就是4   而此时  c本身c+1  得到了5

  • 2楼网友:千杯敬自由
  • 2021-05-15 17:46
1.a=2;传入函数f(),返回1;2.a++; a=2;3.k+= 2;4.a=2;传入函数f(), 返回1;5.a++; a=2;6.k+= 2;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯