C语言一个简单程序结果有点蒙

#include <stdio.h>
int WF(int x,int y)
{
static int k;
x=x+y;
y+=x;
k+=x+y;
return k;
}
int main()
{
int x=3,y=5;
printf("%d,%d\n",WF(x,y),WF(x,y));
return 0;
}
为什么结果为 42,21 目前只知道21 但是42有点蒙

static int k;

加一句代码看看 k 的值就知道了, k 的值一直保存在变量里面。

img

static int k;
k是静态变量,值一直保存在变量里面。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632