C语言全局变量和局部变量
前言
- 本博文的代码是基于VC++6.0编写;
- 讨论全局和局部变量时,其实就是对变量的作用域进行讨论;
局部变量
是什么?首先是一个变量,其次,这个变量只是在程序的局部范围内有效;
局部变量定义在那些位置:
1. 函数的开头;
2. 函数内的复合语句内定义;
3. 形式参数;
4. 函数中间(非开头);
#include <stdio.h>
void main()
{
}
void fun1(char local_0) //形式参数:只在此函数有效;
{char Local_1 = 'a'; //函数的开头:在本句以下的函数内有效;{char local_2 = 'b'; //函数的复合语句内定义:只能在本复合语句内切本行以下有效;}char Local_3 = 'c'; //函数中间(非开头):只能在本行以下有效;
}
注意:
1)程序执行到某个函数时,这个函数内部的局部变量将会被分配内存空间;局部变量在函数执行结束后,变量所占内存将会被释放;
全局变量
是什么?是变量,可以在全局范围内有意义的变量;所谓全局也并不是真正的全局,而是在定义处以下的范围内才是有效的;
全局变量定义的位置:
1. 文件开头;
2. 函数前;
3. 函数后;
4. 文件结尾;
举例:
#include <stdio.h>char Global_1 = 'A'; //源文件开头:在此行以下的所有定义的函数都有效;
void main()
{
}char Global_2='B'; //函数后和函数前:此全局变量在此行之前是无效,只能在此之下的函数中有效;void fun1()
{char Local_1 = 'a';{char local_2 = 'b';}char Local_3 = 'c';
}char Global_3 = 'B';//程序结尾:程序结尾的全局变量是没有意义的;
注意:
1)为了区别全局变量和局部变量,往往大家在写程序的时候都喜欢将全局变量的首字母大写,而局部变量的首字母小写;
2)全局变量的优点和缺点:
优点:C语言的函数,每次最多只能返回一个值,但是如果定义了全局变量,那么在这个变量的有效范围内,很多函数都能改变这个变量的值,所以增加了函数之间的联系,通过函数的调用可以得到一个或一个以上的值;
缺点:(大量使用全局变量的情况下)
1)占内存:全局变量所占的内存空间不会像局部变量一样会被释放;
2)降低程序清晰性:无法随时确定定义的全局变量的值的大小;
3)降低通用性:程序设计时要求函数的“内聚性”强,函数与函数之间“耦合性”弱;定义全局变是一定要注意在有效范围内变量不能重名,并且当全局变量被跨文件调用的函数调用时,不能出现全局变量与所跨文件中存在重名变量,否则有可能会出错;所以,为了提高程序的可靠性,可移植性和可读性等,全局变量尽量少用;
C语言全局变量和局部变量相关推荐
- C语言 全局变量和局部变量区别 - C语言零基础入门教程
目录 一.全局变量和局部变量简介 1.全局变量简介 2.局部变量简介 二.全局变量和局部变量注意事项 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语 ...
- C语言-全局变量与局部变量
C语言-全局变量与局部变量 某些问题要想彻底解决,只能仰仗技术革新和顶层设计的突破.就好比汽车出现前,你无论如何改进饲料配方和养殖技术,也无法培养出一匹时速100公里的马.正因为在认识问题这个阶段 ...
- c语言中全局变量内存,C语言——全局变量和局部变量在内存中的区别——及编译后的内存分区【栈-堆-全局存储区-文字常量区-程序代码区】...
目录: 一:全局变量 二:局部变量 三:C语言经过编译之后将内存分为以下几个区域 (1)栈(stack) (2)堆(heap) (3)全局(静态)存储区 (4)文字常量区 (5)程序代码区 四:区别 ...
- c语言全局变量和局部变量问题汇总
1.局部变量是否能和全局变量重名? 答:能,局部会屏蔽全局.要用全局变量,须要使用"::" 局部变量能够与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局 ...
- C语言全局变量和局部变量深入
局部变量 定义在函数内部的变量称为局部变量(Local Variable),它的作用域仅限于函数内部, 离开该函数后就是无效的,再使用就会报错. 示例 int f1(int a){int b,c; / ...
- c语言建立全局变量,C语言全局变量和局部变量
引子--- 变量可以在程序中三个地方说明: 函数内部.函数的参数定义中或所有的函数外部.根据所定义位置的不同, 变量可分为局部变量.形式参数和全程变量.从空间角度来看,变量可以分为全局变量和局部变量, ...
- C语言 全局变量和局部变量
#全局变量和局部变量 ##1.变量作用域基本概念 - 变量作用域:变量的可用范围 - 按照作用域的不同,变量可以分为:局部变量和全局变量 ##2.局部变量 - 局部变量: +定义在函数内部的变量以及函 ...
- C语言 全局变量和局部变量的特点
全局变量的特点 C语言做一个加法运算结果放到全局变量 #include <stdio.h>int g_n = 10;void Plus() {int i = 10;int k = 20;g ...
- C语言 全局变量和局部变量的大小限制
以下转载自:http://blog.sina.com.cn/s/blog_4a033b090100zdsd.html 下午做最长公共子序列的时候遇到的问题,问了felix后恍然大悟...看代码 #in ...
- C语言 全局变量和局部变量的申请
今天在学习排序算法比较性能的时候,针对数组的申请出现了问题. 然后就去寻找为什么? #include <stdio.h> int main(){int a[1000000];//局部变量r ...
最新文章
- 21.单链表怎么就地逆序?
- 回溯算法-排列/组合/子集
- matlab绘图 excel,『在matlab上如何导入excel表格然后画图』excle表格如何使用绘图笔...
- Redux API之applyMiddleware
- linux下配置squid 服务器,最简单使用方式
- 2 如何设置窗口title_如何正确的知晓生僻字发音?无需字典查询,2步手机设置轻松搞定...
- 20200802:力扣200周周赛题解
- 认真学习系列:《计算机网络自顶向下方法》笔记
- Linux内核移植漫谈——你不是第一个想移植Linux内核的人
- 1.7 非平衡数据的处理方法大全
- orcale物化视图刷新
- 输入某年某日,判断这一天是这一年的第几天
- Android音频子系统(十五)------Audio调试经验
- 实习生面试软件测试岗位指南
- Excel VBA导出操作
- Django 邮箱设置
- 多易教育KAFKA实战(2)-java生产者客户端API示例代码
- hana 服务器性能测试,SAP HANA
- ini文件全部写入时换行符号未写入的问题处理
- 前端学习-关于选择器的介绍和使用
热门文章
- 百度地图模拟签到考勤程序
- UE4 编辑器下生成自定义蓝图类
- 抢椅子游戏java_抢椅子游戏作文(精选10篇)
- 计算机软件集成项目工程师上海,上海系统集成项目管理工程师积分政策,可以加多少分?...
- 机械设计:如何能看懂复杂机械图纸中的尺寸标注,赶快学起来
- AI之语音转写项目实践
- 一次关于聚合根的激烈讨论
- 洛杉矶马拉松本周末开跑!27000名选手正常参赛
- Hadoop KMS 使用
- 找不到服务器或应用项目,word中文档时提示“找不到服务器应用程序、源文件或项目”有...-office软件找不到word文档,officewo...