重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
通过这篇文章,你将对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元起,快前往官网查看详情吧