本帖最后由 执着的土豆 于 2014-4-27 12:22 编辑
所有得变量默认就是auto,因此一般定义变量得时候忽略auto。 static用来定义变量时: 变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与栈变量和堆变量的区别。 - int sum(int a)
- {
- auto int c=0;
- static int b=3;
- c+=1;//执行过后,变量c得值每次为1.
- b+=2;//执行过后,变量b得值每次在上一次b得值得基础上加2
- return(a+b+c); //a得值 每次都是2
- //因此每次返回得值都递增2,在上一次得基础上加2
- }
-
- void main()
- {
- int I;
- int a=2;
- for(I=0;I<5;I++)
- {
- printf("%d,", sum(a));
- }
- }
复制代码
|