局部变量
在函数的开头定义在函数内的符合语句内定义作用范围在包含该局部变量的函数内有效
一个函数内部,可以在复合函数语句中定义变量,这些变量只在本复合语句中有效,这种符合语句称为分程序或程序块#include<stdio.h>int main(){int a = 0,b = 0;{int c;c = a+b;}return 0;}c在复合语句中有效,离开复合语句就失效了
生命周期
函数调用完就失效
全局变量
定义在函数之外的变量叫做全局变量,都是存放在静态存储区中的作用范围可以被该文件的其他函数所共用,从定义变量的位置到本源文件结束生命周期
在程序的全部执行过程中都占用存储单元
注意:当全局变量和局部变量重名时,全局变量会被屏蔽
静态局部变量
作用范围在编译时赋初值,只赋值一次,每次调用函数时不再重新赋值而只是保留上次函数调用结束时的值生命周期
在程序整个运行期间都不会释放
注意:虽然静态局部变量在函数调用结束候依然存在,但其他函数是不能引用他的。因为他是局部变量,只能被本函数引用,不能被其他函数引用。
静态全局变量
很明显具有全局变量和静态局部变量的性质
从定义到本文件结束,会保留上一次赋的值
#include<stdio.h>static int a = 10;int main(){int a = 9;printf("a=%d",a);return 0;}
当静态全局变量和局部变量冲突时,会遵循就近原则选择局部变量
如果觉得《c语言的局部变量 全局变量及静态局部变量和静态全局变量》对你有帮助,请点赞、收藏,并留下你的观点哦!