2020-12-30

由一道编程题体验到static的用法:

       **Static 定义静态局部变量:运算阶乘更为方便**
       举例如下:
       两段代码,为两种情况做对比;
       此段代码未用static:
#include<stdio.h>
int fun(int i);
int main()
{
    
    
	int i,n;
	printf("Please input n: ");
	scanf("%d",&n);
	printf("Output:\n");
	for(i=1;i<=n;i++)
	{
    
    
		printf("%d!=%d\n",i,fun(i));
	}
	return 0;
}
int fun(int i)
{
    
    
	if(i==0)
		return 1;
	else
return (i*fun(i-1));
}

在这里插入图片描述
此段代码也可实现运算阶乘;

之后比对利用static定义静态局部变量:运算阶乘更为方便:

int fun(int i);


int main()
{
    
    
	int i,n;
	printf("Please input n: ");
	scanf("%d",&n);
	printf("Output:\n");
	for(i=1;i<=n;i++)
	{
    
    
		printf("%d!=%d\n",i,fun(i));
	}
	return 0;
}
int fun(int i)
{
    
    
	static int a=1;
	a=a*i;
	return a;
}

运算结果一致,更为简便;

猜你喜欢

转载自blog.csdn.net/yooppa/article/details/111998931