C语言中static的用法与注意事项【入门保姆级教学理解】-创新互联

通过这篇文章,你将对C语言中static的用法与注意事项有一个深入的了解。

成都创新互联是一家集网站建设,东台企业网站建设,东台品牌网站建设,网站定制,东台网站建设报价,网络营销,网络优化,东台网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

一.初识static

在C语言中,static可以修饰局部变量,也可以修饰全局变量和函数。经过static修饰后,其生命周期改变。举个例子,通常情况下,局部变量在其局部范围内使用结束后,即被销毁。而static修饰局部变量后,其不会被销毁。也就是说,static修饰局部变量,改变了局部变量的生命周期。

我们来看下面的代码

#define _CRT_SECURE_NO_WARNINGS 1
#include//static修饰局部变量,改变了局部变量的生命周期(本质上是改变了变量的存储类型)

void test()
{
	static int a = 1;
	a++;
	printf("%d\t", a);
}    //注意由于static的存在, 这里的a在函数被调用结束后没有被销毁

int main()
{
	int i = 0;
	while (i< 10)
	{
		test();//调用test函数
		i++;
	}
	return 0;
}
/*此时结果是2    3    4    5    6    7    8    9    10    11
若test函数中的a没有用static来修饰,那么结果会是2    2    2    2    2    2    2    2    2    2   2     因为每次调用完test函数后,局部变量a会被销毁

总结:经过static修饰之后,其生命周期就改变了。(注:本质上是改变了变量的存储类型)

二.static对于跨文件调用的影响

在不同的源文件中,我们可以通过extern修饰变量,以便完成对于该变量的调用。但是,当文件中的变量被static修饰后,那么该变量则只能用于该文件。

我们来看下面的例子。

当我们在一个文件里定义如下全局变量,并且用static来修饰它。

static int ADD = 111;

那么,我们是无法在另外一个文件里使用它的。

#define _CRT_SECURE_NO_WARNINGS 1
#includeextern int ADD;
int main()
{
	printf("%d", ADD);
	return 0;
}//此时编译会报错

三.被static修饰的变量,其值是可以改变的

#define _CRT_SECURE_NO_WARNINGS 1
#includeint main()
{
	static int AB = 100;

	AB = 1000;//      static 可以修饰全局变量,可以修饰局部变量,可以修饰函数。 static修饰的变量可以改变。

	printf("%d\n", AB);
	return 0;
}//此时会输出  1000     AB的值不再是100

以上,就是C语言中,static的用法与介绍。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站标题:C语言中static的用法与注意事项【入门保姆级教学理解】-创新互联
标题链接:http://myzitong.com/article/dcjhgd.html