C语⾔中static修饰全局或局部变量
⼀、static修饰全局变量:
当⼀个进程的全局变量被声明为static之后,它的中⽂名叫静态全局变量。静态全局变量和其他的全局变量的存储地点并没有区别,都是在.data段(已初始化)或者.bss段(未初始化)内,但是它只在定义它的源⽂件内有效,其他源⽂件⽆法访问它。根据这个原理,我们可以在多个⽂件中定义相同名字的全局变量⽽不影响,可以重名。
⼆、static修饰局部变量:
static局部变量中⽂名叫静态局部变量。static修饰的变量
1)位置:静态局部变量被编译器放在全局存储区.data(注意:不在.bss段内,原因见3)),所以它虽然是局部的,但是**在程序的整个⽣命周期中存在**。
2)访问权限:静态局部变量只能被其作⽤域内的变量或函数访问。也就是说虽然它会在程序的整个⽣命周期中存在,由于它是static的,它**不能被其他的函数和源⽂件访问。**
3)值:静态局部变量如果没有被⽤户初始化,则会被编译器**⾃动赋值为0**,以后每次调⽤静态局部
变量的时候都⽤上次调⽤后的值。这个⽐较好理解,每次函数调⽤静态局部变量的时候都修改它然后离开,下次读的时候从全局存储区读出的静态局部变量就是上次修改后的值。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论