十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1、记住一条就够了:在函数之外定义的变量就是全局变量。用static修饰的变量可以是全局的,也可以是局部的,所以说“用static修饰的变量是全局变量”是错误的。用static修饰的变量的生命周期与全局变量一样,但可见性仍分全局和局部。 2、全局变量在整个c文件中都能使用,而局部变量在其作用域内才能使用,举个例子: int f = 7;// 这个是全局变量int myadd(int a, int b){int c = a + b;// c是局部变量,只能在myadd中使用return c;}int main(void){printf("%d\n", c);// 因为c是myadd中定义的局部变量,这里会报错。printf("%d\n", f);// f是全局变量,这句是正确的。}
成都创新互联专业为企业提供临武网站建设、临武做网站、临武网站设计、临武网站制作等企业网站建设、网页设计与制作、临武企业网站模板建站服务,10多年临武做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
static变量和main函数外面定义的变量为全局变量,比如
#include"stdio.h"
int
a=3,b=5;//全局变量
max(int
a,int
b)
{
int
c;
c=ab?a:b;
return
c;
}
main()
{
int
a=8;
printf("%d\n",max(a,b));
}附图
还有max(int
a,int
b)
{int
c;//局部,运行完函数后c占用的内存空间就被释放,即c消失了
c=ab?a:b;
return
c;
}
main()
{
extern
int
a,b;//extern此处为全局变量,或者这样定义static
int
a,b;
printf("%d\n",max(a,b));
}
int
a=3,b=5;
全局变量是在main函数之前就分配
局部变量在定义时分配,超出作用域后释放
静态局部变量只分配一次,程序退出后才释放
函数参数与局部变量基本上相同在进入函数时分配,函数结束时释放
比如
int a = 10,b=20;
int getSub(int a,int b){
return a+b;//这里的a,b和全局变量a,b没有任何关系——除了名字相同。在该函数中形参a,b会覆盖全局变量a,b。
}
如果你这样写
int getSub(){
return a+b;//那么这里的a,b就是全局变量了。
}