C语言中的静态变量和函数

时间:2020-02-23 14:32:06  来源:igfitidea点击:

C中的静态变量

基本上,声明静态变量时,它们仅创建它们的单个副本,也称为类变量。

它们保留在相应范围内分配的值,并且不会在其新范围内再次初始化变量。

  • 静态变量在代码执行期间保留在内存空间中。

  • 静态变量初始化的默认值为零(0)。

  • 在C编程中,必须使用常量常量初始化静态变量,否则它将返回错误。

语法:

static Data_Type variable = value; 

例:

#include<stdio.h> 
void implement() 
{ int x = 0;
static int counter = 0; 
counter++; 
x++;
printf("\nStatic Variable's value:\n");
printf("%d",counter);
printf("\nLocal Variable's value:\n");
printf("%d",x);
} 

int main() 
{ 
implement();
implement();
return 0; 
}

在上面的代码片段中,每次调用函数后,都会再次初始化局部变量的值。

与局部变量(x)不同,静态变量(counter)仅初始化一次,并且在程序执行期间确实保留了相同的变量副本。

输出:

Static Variable's value:
1
Local Variable's value:
1
Static Variable's value:
2
Local Variable's value:
1

C中的静态函数

C语言中的静态函数基本上将方法的范围限制为相应的文件。
也可以在不初始化对象的情况下调用这些函数。

  • 静态函数通常会增强代码的可用性,即使代码准备好再次使用。

  • 它限制了该特定程序中功能范围的可见性。

语法:

static Return_Type method_name(parameters)
{
  body;
}

例:

#include <stdio.h>

//static function definition
static int sum(int a, int b){
	return (a+b);
}

int main()
{
	int number1,number2;;
	printf("Enter the number1: ");
	scanf("%d",&number1);
	printf("Enter the number2: ");
	scanf("%d",&number2);
	printf("Addition of two numbers = ");
	int res = sum(number1,number2);
	printf("%d",res);
	return 0;
}

输出:

Enter the number1: 10
Enter the number2: 20
Addition of two numbers = 30