c语言:全局变量和局部变量的区别:通过调用函数举例
2016-01-02 11:13
519 查看
全局变量和局部变量的区别:通过调用函数举例
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
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
相关文章推荐
- 基于C语言的万年历
- c语言编译时的一个问题
- C语言符号优先级
- C++表示数组长度
- C语言 宏 高级用法
- 一.OC基础之:1,OC语言的前世今生 ,2,OC语言入门,3,OC语言与C的差异,4,面向对象,5,类和对象的抽象关系,6,类的代码创建,7,类的成员组成及访问
- C语言-1.static 和 extern使用,2.文件,3.数据块读写
- C语言-1.结构体,2.枚举,3.typedef,4.预处理指令的概念,5.条件编译
- c语言和oc对比
- delete释放new[]造成的泄漏
- [c语言]EmailAddresses(for hw)
- C语言 数组长度...int length = sizeof(stu) / sizeof(stu[0]);
- 学习c++的五十条忠告
- C语言-指针
- C++模板元编程(三)
- C语言指针-----指针与字符串
- C++笔记——动态链接库测试实例
- C++笔记——动态链接库测试实例
- C++笔记——拷贝对象
- C++笔记——创建一个动态链接库工程