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
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语言:字符串匹配的KMP算法
- c语言:模拟实现strstr库函数
- c语言:浪漫的putchar(),用数字向女朋友表白吧(ps:单身汪勿入)
- c语言:我国国民生产总值的年增长率为10%,10年后国民生产总值与现在相比增长多少
- c语言:存款利息计算,1000元,存5年,求五种方案存款五年后的本息和
- c语言:购房从银行贷了一笔款d,准备每月还款额为p,月利率为r,计算多少月能还清。
- c语言:整型和字符型的范围易错及分析
- c语言:实现对于给定的正整数N,依次打印出小于等于N的所有素数。两种方法及其优化
- c语言:编写猜数字小游戏。
- c语言:C语言清空输入缓冲区在标准输入(stdin)情况下的使用
- c语言:按如下方式输出You are handsome!,每到下一行,就替换掉两边上的字符
- c语言:sizeof的使用,其不是函数,是一个操作符关键字,定义一个数组arr,输出arr和&arr的区别
- c语言:0的按位取反结果
- c语言:&&和||的关系
- c语言:条件表达式的应用
- c语言:易错的if语句
- c语言:在屏幕上输出图案
- c语言:编写一个程序,它从标准输入(终端)读取C源代码,并验证所有的花括号都正确的成对出现。
- c语言:用户输入10个整数,程序找出其中的最大值和最小值
- c语言:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?打印出来?