关于#c语言#的问题,请各位专家解答!

结果为:
sum=8
sum=10
sum=12
解析:因为sum()函数中,b是静态变量(static),静态变量的初始化只执行一次,也就是static b=3在整个代码中只会执行一次,b的值会继承上一次sum函数的执行结果。详细执行流程如下:


sum的参数为全局变量a

i=0时,调用sum(2),a=2,b=3
    c+=1=1;
    b+=2;b = 3+2 = 5
    返回(a+b+c)=(2+5+1)=8
main函数显示sum=8

i=1时,调用sum(2),a=2,b=5,因为b时静态变量,保留上一次sum计算的值,所以是5
    c+=1=1;
    b+=2; b = 5+2 = 7
    返回(a+b+c)=(2+7+1)=10
main函数显示sum=10

i=2时,调用sum(2),a=2,b=7,因为b时静态变量,保留上一次sum计算的值,所以是7
    c+=1=1;
    b+=2; b = 7+2 = 9
    返回(a+b+c)=(2+9+1)=12
main函数显示sum=12

img

结果:30
static 修饰的变量会保留上一次的结果值。
所以需要注意的就是变量b的值,每次会保留上一次的结果。
第一次执行sum(a)后,b的结果为5;
第二次执行sum(a)后,b的结果为5+2=7;
第三次执行sum(a)后,b的结果为7+2=9;

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

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^