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

​ 某些问题要想彻底解决,只能仰仗技术革新和顶层设计的突破。就好比汽车出现前,你无论如何改进饲料配方和养殖技术,也无法培养出一匹时速100公里的马。正因为在认识问题这个阶段总是草草行事,我们才会经常在解决问题阶段做无用功。


目录


一、一般单片机工程结构

  • 报错原因:

    1. 变量重复定义
    2. 函数重复定义
    • 程序:那数据----处理数据—抛数据
  • 份文件监理工程后为什么可以尽量避免报错了?

    变量和函数作用域起作用了(可以出现同名的变量名称和函数名称)

二、变量作用域

  • 分类

    1. 全局变量

      整个工程可用

    2. 局部变量(可用范围)

      只要全局不可用,那么这个变量就是局部变量

      • .c文件里面可用的局部变量
      • 函数里面可用的局部变量
      • 代码块里面可用的局部变量
  • 区别

    作用域不同

  • 造成原因

三、全局变量与局部变量

1、定义

全局变量和局部变量的定义

  • 全局变量定义

    1. 在任意的.c文件定义一个变量
    2. 在对应头文件进行声明
  • 局部变量定义

    1. 本.c文件可用

      定义在这个.c文件的开头

    2. 本函数可用

      定义在函数内部

    3. 代码块局部变量

      定义在代码块里面的变量

  • 示例

    写一个函数,实现任意三个数的相加

2、存在的意义

生命周期

  • 全局变量和.c文件变量是在整个工程运行期间一直存在的
  • 函数内的变量,只有在函数执行的时候存在
  • 代码块里面的变量,只有在代码块运行的时候存在
  • ???既然全局变量这么好用,我们干脆把所有变量声明成全局变量不香码?

    不行,原因:

    1. 工程大的时候变量会非常多

      • 出现重名
      • 占运存
  • 全局变量和局部变量存在的意义了吗?

    合理的使用运存

四、函数的形参

  • 注意

    函数的形参是属于函数的局部变量,生命周期随着函数的使用而分配,随着函数的结束而清除

  • 一个好的编程习惯

    使用指针

五、示例

合理的使用运存

四、函数的形参

  • 注意

    函数的形参是属于函数的局部变量,生命周期随着函数的使用而分配,随着函数的结束而清除

  • 一个好的编程习惯

    使用指针

五、示例

C语言-全局变量与局部变量相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 2018-10:自考总结
  2. SpringBoot最新面试题及答案,汇总版
  3. C#在WinForm中实现清空指定类型控件的内容
  4. Oracle10g安装步骤(一)
  5. 这是面向企业组织IT负责人的SD-WAN指南—Vecloud
  6. CVPR15 image retrieval reading list
  7. [BZOJ3583]杰杰的女性朋友(矩阵快速幂)
  8. python绘制社会关系网络图_Python networkx 网络图绘制
  9. opencv 直方图投影
  10. JavaScript学习(六十九)—正则表达式实训题
  11. MII/MDIO接口详解
  12. 计步算法 睡眠 心率 学习 PPG传感器(转))
  13. 1222-周一开盘红红火火大涨的一天。EG,PVC,沪铜,国际铜,纯碱涨停
  14. png在ai转为路径_png格式转为ai格式
  15. frp内网穿透(Mac远程连接公司windows)
  16. python爬取和平精英皮肤_Python——LOL官方商城皮肤信息爬取(一次练手)
  17. eclipse上插入中文到mysql,但是navicat显示问号《网上很多方法都没用》,最终google到了精品
  18. DLNA - 一个伟大的方式来享受流媒体电影在首页
  19. python类方法的作用-python:类方法的目的是什么?
  20. 关联规则----Apriori算法以及代码实现

热门文章

  1. 水星无线网卡驱动下载
  2. cloudmaker一个云架构的画图工具也支持自动化部署,界面清爽功能好用
  3. 统计学习方法 HMM
  4. Win11上的清除ftp登录账号与密码
  5. Intel x86 Emulator Accelerator(HAXM installer)无法安装
  6. android opengl旋转,OpenGL纹理旋转及翻转问题详解
  7. CKA证书题库-总结
  8. Design four
  9. 华为面试题: 高矮个子排队
  10. 瞎姬霸写之为什么我的生活越来越没意思