📅  最后修改于: 2020-10-21 08:11:06             🧑  作者: Mango
静态是C编程语言中使用的关键字。它可以与变量和函数一起使用,即我们可以声明一个静态变量和一个静态函数。普通变量仅限于定义它的范围,而静态变量的范围遍及整个程序。
让我们通过一个例子来理解。
#include
int main()
{
printf("%d",func());
printf("\n%d",func());
return 0;
}
int func()
{
int count=0; // variable initialization
count++; // incrementing counter variable
return count; }
在上面的代码中,func()函数被调用。在func()中,count变量得到更新。函数完成执行后,count变量的内存将被删除。如果我们不想从内存中删除计数,则需要将count变量用作静态变量。如果我们将变量声明为静态变量,则即使函数完成其执行,该变量也不会从内存中删除。
输出量
1
1
静态变量是在各种函数调用中保持其值不变的变量。
句法
静态变量的语法如下:
static data_type variable_name;
让我们看一个简单的静态变量示例。
#include
int main()
{
printf("%d",func());
printf("\n%d",func());
return 0;
}
int func()
{
static int count=0;
count++;
return count;
}
在上面的代码中,我们已将count变量声明为static。当调用func()时,count的值更新为1,在下一个函数调用期间,count变量的值变为2。因此,可以说静态变量的值在函数调用中持续存在。 。
输出量
1
2
我们知道默认情况下非静态函数是全局的,这意味着该函数也可以在文件外部访问,但是如果我们将该函数声明为静态,则它将限制函数范围。静态函数只能在文件中访问。
静态函数如下所示:
static void func()
{
printf("Hello javaTpoint");
}
全局变量是在函数外部声明的变量。这些全局变量存在于程序的开始,并且其范围一直保留到程序结束。也可以在程序外部访问它。
静态变量仅限于定义它们的源文件,即,其他源文件无法访问它们。
静态变量和全局变量都具有静态初始化。在这里,静态初始化意味着如果我们不给变量分配任何值,那么默认情况下,会将0值分配给变量。
静态全局变量
如果在函数外部使用static关键字声明了该变量,则称为静态全局变量。在整个程序中都可以访问。
静态局部变量
带有static关键字的变量在函数内部声明,称为静态局部变量。静态局部变量的范围将与自动局部变量的范围相同,但在整个程序执行过程中将使用其内存。当函数在一个函数调用期间修改静态局部变量的值时,即使在下一个函数调用期间它也将保持不变。
以下是静态变量的属性: