前言

  1. 本博文的代码是基于VC++6.0编写;
  2. 讨论全局和局部变量时,其实就是对变量的作用域进行讨论;

局部变量

是什么?首先是一个变量,其次,这个变量只是在程序的局部范围内有效;
局部变量定义在那些位置:
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语言全局变量和局部变量相关推荐

  1. C语言 全局变量和局部变量区别 - C语言零基础入门教程

    目录 一.全局变量和局部变量简介 1.全局变量简介 2.局部变量简介 二.全局变量和局部变量注意事项 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语 ...

  2. C语言-全局变量与局部变量

    C语言-全局变量与局部变量 ​ 某些问题要想彻底解决,只能仰仗技术革新和顶层设计的突破.就好比汽车出现前,你无论如何改进饲料配方和养殖技术,也无法培养出一匹时速100公里的马.正因为在认识问题这个阶段 ...

  3. c语言中全局变量内存,C语言——全局变量和局部变量在内存中的区别——及编译后的内存分区【栈-堆-全局存储区-文字常量区-程序代码区】...

    目录: 一:全局变量 二:局部变量 三:C语言经过编译之后将内存分为以下几个区域 (1)栈(stack) (2)堆(heap) (3)全局(静态)存储区 (4)文字常量区 (5)程序代码区 四:区别 ...

  4. c语言全局变量和局部变量问题汇总

    1.局部变量是否能和全局变量重名? 答:能,局部会屏蔽全局.要用全局变量,须要使用"::" 局部变量能够与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局 ...

  5. C语言全局变量和局部变量深入

    局部变量 定义在函数内部的变量称为局部变量(Local Variable),它的作用域仅限于函数内部, 离开该函数后就是无效的,再使用就会报错. 示例 int f1(int a){int b,c; / ...

  6. c语言建立全局变量,C语言全局变量和局部变量

    引子--- 变量可以在程序中三个地方说明: 函数内部.函数的参数定义中或所有的函数外部.根据所定义位置的不同, 变量可分为局部变量.形式参数和全程变量.从空间角度来看,变量可以分为全局变量和局部变量, ...

  7. C语言 全局变量和局部变量

    #全局变量和局部变量 ##1.变量作用域基本概念 - 变量作用域:变量的可用范围 - 按照作用域的不同,变量可以分为:局部变量和全局变量 ##2.局部变量 - 局部变量: +定义在函数内部的变量以及函 ...

  8. C语言 全局变量和局部变量的特点

    全局变量的特点 C语言做一个加法运算结果放到全局变量 #include <stdio.h>int g_n = 10;void Plus() {int i = 10;int k = 20;g ...

  9. C语言 全局变量和局部变量的大小限制

    以下转载自:http://blog.sina.com.cn/s/blog_4a033b090100zdsd.html 下午做最长公共子序列的时候遇到的问题,问了felix后恍然大悟...看代码 #in ...

  10. C语言 全局变量和局部变量的申请

    今天在学习排序算法比较性能的时候,针对数组的申请出现了问题. 然后就去寻找为什么? #include <stdio.h> int main(){int a[1000000];//局部变量r ...

最新文章

  1. 21.单链表怎么就地逆序?
  2. 回溯算法-排列/组合/子集
  3. matlab绘图 excel,『在matlab上如何导入excel表格然后画图』excle表格如何使用绘图笔...
  4. Redux API之applyMiddleware
  5. linux下配置squid 服务器,最简单使用方式
  6. 2 如何设置窗口title_如何正确的知晓生僻字发音?无需字典查询,2步手机设置轻松搞定...
  7. 20200802:力扣200周周赛题解
  8. 认真学习系列:《计算机网络自顶向下方法》笔记
  9. Linux内核移植漫谈——你不是第一个想移植Linux内核的人
  10. 1.7 非平衡数据的处理方法大全
  11. orcale物化视图刷新
  12. 输入某年某日,判断这一天是这一年的第几天
  13. Android音频子系统(十五)------Audio调试经验
  14. 实习生面试软件测试岗位指南
  15. Excel VBA导出操作
  16. Django 邮箱设置
  17. 多易教育KAFKA实战(2)-java生产者客户端API示例代码
  18. hana 服务器性能测试,SAP HANA
  19. ini文件全部写入时换行符号未写入的问题处理
  20. 前端学习-关于选择器的介绍和使用

热门文章

  1. 百度地图模拟签到考勤程序
  2. UE4 编辑器下生成自定义蓝图类
  3. 抢椅子游戏java_抢椅子游戏作文(精选10篇)
  4. 计算机软件集成项目工程师上海,上海系统集成项目管理工程师积分政策,可以加多少分?...
  5. 机械设计:如何能看懂复杂机械图纸中的尺寸标注,赶快学起来
  6. AI之语音转写项目实践
  7. 一次关于聚合根的激烈讨论
  8. 洛杉矶马拉松本周末开跑!27000名选手正常参赛
  9. Hadoop KMS 使用
  10. 找不到服务器或应用项目,word中文档时提示“找不到服务器应用程序、源文件或项目”有...-office软件找不到word文档,officewo...