您的位置:首页 > 编程语言 > C语言/C++

c语言:全局变量和局部变量的区别:通过调用函数举例

2016-05-29 13:38 295 查看
全局变量和局部变量的区别:通过调用函数举例
a.全局变量申明位置在所有代码块之外,不存储于堆栈,作用域为从申明到文件尾,如果申明为static,不允许从其他文件访问
b.局部变量申明位置在代码块起始处,存储于堆栈,作用域为整个代码块,如果申明为static,变量不存储于堆栈中,他的值在整个程序的执行期一直保持
c.形式参数申明位置在函数头部,存储于堆栈,作用域为整个函数,不允许申明为static
程序1:
#include<stdio.h>
static int m;
void fun1()
{
static int n = 0;//静态局部变量
n++;
printf("n=%d\n",n);
}
void fun2()
{
m = 0;//全局变量
m++;
printf("m=%d\n", m);
}

int main()
{
int i;
for (i = 0; i < 5; i++)
{
fun1();
}
return 0;
}
局部变量结果:
n=1
n=2
n=3
n=4
n=5
请按任意键继续. . .
程序2:
#include<stdio.h>
static int m;
void fun1()
{
static int n = 0;//静态局部变量
n++;
printf("n=%d\n",n);
}
void fun2()
{
m = 0;//全局变量
m++;
printf("m=%d\n", m);
}

int main()
{
int i;
for (i = 0; i < 5; i++)
{
/*fun1();*/
fun2();
}
return 0;
}
全局变量结果:
m=1
m=1
m=1
m=1
m=1
请按任意键继续. . .

本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1730809
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐