C语言:二十五 函数中的static例子
static int j;
int k=0;
void fun1(void)
{
static int i=0; //注释①
i++;
}
void fun2(void)
{
j=0; //注释②
j++;
}
int main()
{
for(k=0; k<10; k++)
{
fun1();
fun2();
}
return 0;
}
问:i=? j=?
解析:
注释①:static int i=0;
这个定义与普通的int i=0不同,加了static后,这个i会存放在静态数据区,只能被初始化一次,在第一次调用fun1()时,创建i并初始化,之后再调用fun1()时,发现这个i已存在,那么这句就会被忽略掉。
注释②:j=0;
这就是普通的赋值,fun2()每次被调用都先将j赋0然后再自加成1。
答案:i=10, j=1。
相关推荐
choupiaoyi 2020-07-28
零 2020-09-18
Crazyshark 2020-09-05
弱思 2020-08-02
Jaystrong 2020-07-28
willowwgx 2020-07-27
zhaowj00 2020-07-05
D先生 2020-07-04
igogo00 2020-06-28
wzxxtt0 2020-06-25
CSSEIKOCS 2020-06-25
THEEYE 2020-06-25
程序员之怒 2020-06-23
harddays 2020-06-21
亦碎流年 2020-06-18
D先生 2020-06-16
tuxlcsdn 2020-06-13
郭朝 2020-06-11