高防服务器

C语言中static和auto用法是什么


C语言中static和auto用法是什么

发布时间:2022-01-17 12:07:05 来源:高防服务器网 阅读:62 作者:kk 栏目:开发技术

这期内容当中小编将会给大家带来有关C语言中static和auto用法是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

static的第一种用法:定义为静态变量

何为静态变量?存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。就是只进行一次初始化。不理解?看代码!

代码见真知:

#include<stdio.h>  int main()  {  	void fun();   //定义一个空函数     	for(int i=0;i<3;i++)  	{  		fun();    //调用函数  	}  	return 0;  }   void fun()    {  	int i=0;   	static int static_i=0;     	printf("没有加static的结果为:%dn",i);  	printf("加了static的结果为:%dn",static_i);      	i++;    //没有加static,i最终都会被初始化为0     	static_i++;  //加了static,只初始化一次,后面继续累加     	printf("n");  }

运行结果:

由结果可以看出有static的在持续累加,除了第一次没有再初始化。

static的第二种用法:有理说不清,直接代码见真知

#include<stdio.h>  int main()  {  	int i,sum;  	sum=2;     	for(i=0;i<3;i++)  	{          //外置模块  		printf("外置模块为:%dn",sum);  		sum++;             //内置模块  		{  			static int sum=1;  //局部重新定义sum的初始值  			printf("内置模块为:%dn",sum);  			sum++;  		}        		printf("n");  	}  	return 0;  }

运行结果:

 由结果可见:外置模块和内置模块是互不影响的,这就是static的第二种用法,保持局部一部分稳定,不会随外部的变化而变化。

auto的用法:直接代码见真知

#include<stdio.h>  int main()  {  	int i,sum;  	sum=2;  	for(i=0;i<3;i++)  	{          //外部  		printf("外置模块为:%dn",sum);  		sum++;             //局部  		{  			auto int sum=1;   			printf("内置模块为:%dn",sum);  			sum++;  		}        		printf("n");  	}  	return 0;  }

代码看不懂?结合运行结果就懂了:

由结果显而易见:外置模块持续累加,内置模块全部为1,与static的第二种用法相比较,auto局部不断进行初始化 ,而static是局部除第一次外不再初始化。

static和auto的相同之处是都能只在局部进行改变,与外置模块互不干涉。

C语言是什么

C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以以简易的方式编译、处理低级存储器。

上述就是小编为大家分享的C语言中static和auto用法是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注高防服务器网行业资讯频道。

[微信提示:高防服务器能助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

[图文来源于网络,不代表本站立场,如有侵权,请联系高防服务器网删除]
[