本帖最后由 执着的土豆 于 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));
 
 -         }
 
 -     }
 
 
  复制代码 
 
 |