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

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值