【C语言】全局变量与局部变量
在不同的函数之间传递数据时,可以使用如下方法:
- 参数:通过形参和实参
- 返回值:用 return 语句返回计算结果
- 全局变量
全局变量与局部变量
全局变量:函数之外定义的变量称为全局变量(外部变量);
局部变量:在一个函数内部定义的变量称为局部变量(内部变量)。
全局变量使用:
#include <stdio.h>
int i = 10; //全局变量
void print() {
printf("print i=%d\n",i);
}
int main() {
printf("main i=%d\n",i);
i=5;
print();
return 0;
}
全局变量存储在数据段,所以对于 main 函数和 print 函数都是可见的。
全局变量在整个进程的执行过程中始终有效,不会因为某个函数执行结束而消失。
局部变量存储在自己的函数对应的栈空间内,函数执行结束后,分配给该函数局部变量的空间将被释放。
如果局部变量和全局变量重名,将采取就近原则,即实际获取和修改的值是局部变量的值。
#include <stdio.h>
int i = 10; //全局变量
void print() {
printf("print i=%d\n",i);
}
int main() {
printf("main i=%d\n",i);
int i=111;
print();
printf("main i=%d\n",i);
return 0;
}
执行结果:
全局变量的注意点:
- 全局变量可以为本文件中的其他函数共用,它的有效范围是从定义变量的位置开始到本源文件结束。
- 全局变量在程序的全部执行过程中都占用存储单元,而不是仅在需要时才开辟单元。
- 使用全局变量过多会降低程序的清晰性,在各个函数执行时都可能改变全局变量的值,程序容易出错。
- 函数在执行时依赖于其所在的全局变量,如果将一个函数移到另一个文件中,还需要将有关全局变量也移过去。此时,若该全局变量与其他文件的变量同名,就会出错。
全局变量的滥用会降低程序的可靠性和通用性,因此一般约定通过”实参->形参”进行联系,而不使用全局变量。
局部变量的注意点:
- 局部变量的有效范围是离自己最近的花括号内,如在for循环内定义的局部变量是不能用在for循环之外的。
- 不同函数中可以使用相同名字的变量,他们存在于各自函数的栈空间内,互不干扰。
- 形式参数也是局部变量,
本文来自博客园,作者:hzyuan,转载请注明原文链接:https://www.cnblogs.com/hzyuan/p/17963069
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· c# 半导体/led行业 晶圆片WaferMap实现 map图实现入门篇
· 易语言 —— 开山篇