静态变量求x n c语言,菜鸟求教C语言静态局部变量

博客探讨了C语言中静态变量在循环中的行为。通过一个示例程序解释了静态变量如何在每次循环中保留其值,并影响最终结果。在不同循环迭代中,静态变量的初始化和递增导致了变量值的复杂变化,最终影响到函数返回值和程序的总和计算。
摘要由CSDN通过智能技术生成

int a=2;

int f(int n)

{static int a=3;

int t=0;

if(n%2){static int a=4;t+=a++;}

else(static int a=5;t+=a++;}

return t+a++;

}

main()

{int s=a,i; //a=2,s=2;

for(i=0;i<3;i++)

s+=f(i);

printf("%d\n",s);

}

第一次循环i=0

int f(int n)

{static int a=3;

int t=0;

if(n%2) //条件不成立

{static int a=4;t+=a++;}

else

(static int a=5;t+=a++;}//执行此处 a=5, t=5

//此时static int a=5;出 a=6

return t+a++; //此处a为static int a=3;

//return 5+3 a++,

//此时static int a=3;的a =4;

}

s=s+8,就是s=10

第二次循环 i=1

int f(int n)

{static int a=3;

int t=0;

if(n%2) //条件成立

{static int a=4;t+=a++;} //t=4;

else

(static int a=5;t+=a++;}

return t+a++; //此处a为上次的

//此时static int a=3;的a =4;

//return 4+4 ,a++

//此时static int a=3;的a =5;

}

s=s+8,即s=18

第三次循环i=2

int f(int n)

{static int a=3;

int t=0;

if(n%2) //条件不成立

{static int a=4;t+=a++;}

else

(static int a=5;t+=a++;} //t=6; a 第一次循环时更改

return t+a++; //return 6+5

}

结果s=s+11,即s=18+11=29

全部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值