静态变量和全局变量的区别(static关键共有多少种用法)

1、修饰变量(局部和全局变量)

   
①静态全局变量:

   
在全局数据区分配内存;未经初始化的静态全局变量会被程序自动初始化为0(自动变量的值是随机的,除非它被显式初始化);

   
作用域仅限于变量被定义的文件中。

全局变量和全局静态变量的区别:

   
1)全局变量是不显式用static修饰的全局变量,但全局变量 默认是静态的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,

   
通过extern 全局变量名的声明,就可以使用全局变量。

   
2)全局静态变量是显式用static修饰的全局变量,作用域是所在的文件,其他的文件即使用extern声明也不能使用。

   
② 静态局部变量

   
static int j;

   
void fun1 (void)

   
{

   
static int i = 0;

   
i++;

   
}

   
void fun2 (void)

   
{

   
j = 0;

   
j++;

   
}

   
int main(void)

   
{

   
int k;

   
for(k = 0; k < 10; k++)

   
{

   
fun1();

   
fun2();

   
}

   
return 0;

   
}

2 修饰函数

   
1、静态函数

   
在函数的返回类型前加上static关键字,函数即被定义为静态函数。静态函数与普通函数不同,它只能在声明它的文件当中可见,

   
不能被其它文件使用。其它文件中可以定义相同名字的函数,不会发生冲突。

版权声明:
作者:Joker 链接:https://hooper.eu.org/archives/113018
文章版权归作者所有,转载请注明出处。
THE END
分享
二维码
打赏
< <上一篇
下一篇>>