电容笔的研发有点入门,但是不是效率需要提高呢?
阔别几天,又开始搞gcc了,虽然现在自己做的题还是非常基本的,不过也算是为以后打基础吧。
今天了解了static变量的特点,还有全局变量和局部变量的区别。不过感觉还是不够,需要以后慢慢去研究。程序是这样的。
#include<stdio.h>
static j;
void fun1(void)
{ static i=0;
i++;
}
void fun2(void)
{ j=0;
j++
}
int main()
{ int k=0;
for(;k<10;k++)
{ fun1();
fun2();
}
return 0;
}
执行后i和j的值各为多少。i和j都是静态变量。j的作用范围是从定义到main函数结束。每一次调用fun2都是重新赋值然后加1,所以最后j=1.而i的作用范围是fun1,i=0只限于初始赋值,以后它的值不会随着每一次fun1的结束被释放,而是被保留下来知道main函数结束。因此执行十次i=10.
如果想用print函数,你会发现如果在for函数的后面加上printf()会提示你i是没有定义的,因为他的作用范围是在fun1中!所以你需要这么修改程序。
#include<stdio.h>
static j;
int fun1(void)
{ static i=0;
i++;
return i;
}
int fun2(void)
{ j=0;
j++
return j;
}
int main()
{ int k=0,ii,jj;
for(;k<10;k++)
{ ii=fun1();
jj=fun2();
}
printf("%d,%d",ii,jj)
}