void fun(int a) { a = 3; } int main(void) { static int a = 5; fun(a); printf("a = %d ", a); return 0; }
打印:a = 5 static定义变量,函数调用后,a的值还是不变
上面这个是我本来理解的功能,static定义变量后,调用函数,值会被改变,但是值没有变,把static的作用理解错了
void fun(int *b) { static int c = 10; *b = c--; } int main(void) { int a = 0; fun(&a); printf("a = %d ", a); fun(&a); printf("a = %d ", a); return 0; }
打印:
a = 10
a = 9
static 在函数调用中就表示只定义一次,再次调用函数时,不再执行此赋值语句