C语言关键字——static详解

目录

关键字-static

1.修饰变量

1.1 修饰局部变量

1.2 修饰全局变量

2. 修饰函数


关键字-static

用来修饰变量函数

1.修饰变量

1.1 修饰局部变量

code1

#define _CRT_SECURE_NO_WARNINGS

#include
//code_1
void function()
{
	int a = 0;
	a++;
	printf("%d ", a);
}
int main()
{
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		function();
	}
	return 0;
}

输出:

 code2

#define _CRT_SECURE_NO_WARNINGS

#include
//code_2
void function()
{
        //static修饰的局部变量,即静态局部变量

	static int a = 0;
	a++;
	printf("%d ", a);
}
int main()
{
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		function();
	}
	return 0;
}

输出:

 分析:C语言关键字——static详解_第1张图片

 结论:static改变了局部变量的生命周期,使得静态局部变量出了作用域后仍然存在,其生命周期变为整个程序(创建->程序结束)

1.2 修饰全局变量

代码1

C语言关键字——static详解_第2张图片输出:2022

代码正常运行

代码2

C语言关键字——static详解_第3张图片输出:无法输出,代码编译时出现连接性错误

结论:一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。

2. 修饰函数

代码1

C语言关键字——static详解_第4张图片输出:5

代码正常运行

代码2

C语言关键字——static详解_第5张图片输出:代码报错,编译时出现连接性错误

结论:一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。

你可能感兴趣的:(c语言)