C语言static局部变量使用的一个现象

[b]引言:[/b]

C语言的static有点内涵,今天遇到个有意思的问题。

[b]正文:[/b]

先上代码:

/*
时间:2012-03-06 16:30
目的:实验静态局部变量
*/
#include <stdio.h>

int f()
{
static int a = 0;
a++;
return a;
}

int fa()
{
static int a;
a = 0;
a++;
return a;
}

int main(void)
{

int i, j;

// f()
for (i = 0; i < 4; i++)
{
j = f();
printf("a = %d\n", j);
}

// fa()
for (i = 0; i < 4; i++)
{
j = fa();
printf("a = %d\n", j);
}

return 0;
}
/*
VC++6.0 结果
---------------------
a = 1
a = 2
a = 3
a = 4
a = 1
a = 1
a = 1
a = 1
Press any key to continue
---------------------
*/

小差异,大区别。到底是咋回事呢?

(要开会,稍后续)

因为,static语句,从始至终,只被执行过一次。

读了static说明书,发现这个问题很菜,留着吧。笔者目前也就这水准了~。= 另外献上参考贴,请看下文引用内容。

[b]引用:[/b]

[url=http://apps.hi.baidu.com/share/detail/22705641]C语言中的static的作用[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值