#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//static静态
//当static修饰局部变量时,局部变量的生命周期变长
//当static修饰全局变量时,改变了变量的作用域,让静态的全局变量只能再自己所在的源文件内部使用
//当sattic修饰函数时,改变了函数的链接属性,外部链接属性变成内部链接属性
void test() {
int a = 1;
a++;
printf("a = %d\n", a);//2 2 2 2 2
}
void test2() {
static int b = 1;//静态的局部变量
b++;
printf("b = %d\n", b);//2 3 4 5 6
}
int main() {
int i = 0;
while (i<5)
{
test();
test2();
printf("------\n");
i++;
}
return 0;
}
a = 2
b = 2
------
a = 2
b = 3
------
a = 2
b = 4
------
a = 2
b = 5
------
a = 2
b = 6
------
本文将探讨C语言中的static关键字,包括其在函数内部和外部的作用,以及在变量声明和函数定义中的不同含义。通过实例分析,揭示static如何影响变量的作用域和生命周期,帮助读者深化对C语言内存管理的理解。
1989

被折叠的 条评论
为什么被折叠?



