/*
#include<stdio.h>
int main(void)
{
static int a=1; //a定义为静态全局变量
int b=1,i=3;
while(i--)
{
a++;
b++;
}
printf("a:%d,b:%d\n",a,b); //结果;a为4,b也为4
return 0;
}
*/
#include<stdio.h>
int func(void)
{
static a=10; //定义为静态局部变量
a++;
printf("a:%d\n",a);
return a; //*****这要有return a;否则有问题
}
int main()
{
int b=1,i=0;
for(;i<3;i++)
{
b++;
printf("func():%d,b:%d\n",func(),b); //****func()函数在此处已经执行了,就不要在主函数中重复写,否则输出两次哦
}
return 0;
}
/*
#include <stdio.h>
int f(int a)
{
auto b = 0;
printf("b=%d\n",b);
static c = 3;
printf("c=%d\n",c);
b = b + 1;
c = c+ 1;
return ( a+ b+ c) ;
}
main( )
{
int a = 2, i;
for ( i = 0; i < 2; i++)
printf ( "%d\n" , f(a) ) ; //结果为7,8*********static所定义的变量具有记忆功能
}
*/
<div> **一个有返回值的函数 没有return 本身就是语法错误
只不过 编译器优化了 </div>