全局变量

·定义在函数外面的变量是全局变量

·全局变量具有全局的生存期和作用域

  ·它们与任何函数都无关

  ·在任何函数内部都可以使用它们

全局变量初始化

·没有做初始化的全局变量会得到0值

  ·指针会得到NULL值

·只能用编译时刻已知的值来初始化全局变量

·它们的初始化发生在main函数之前

被隐藏的全局变量

·如果函数内部存在与全局变量同名的变量,则全局变量被隐藏

静态本地变量-1

·在本地变量定义是加上static修饰符就成为静态本地变量

·当函数离开的时候,静态本地变量会继续存在并保持其值

·静态本地变量的初始化只会在第一次进入这个函数做,以后进入函数时会保持上次离开时的值

静态本地变量-2

·静态本地变量实际上是特殊的全局变量

·它们位于相同的内存区域

·静态本地变量具有全局的生存期,函数内的局部作用域

*返回指针的函数

·返回本地变量的地址是危险的(每次离开后,本地变量分配的内存被释放,下次重新进入某函数时,又重新分配内存给本地变量)

·返回全局变量或静态本地变量的地址是安全的

·返回在函数内malloc的内存是安全的,但是容易造成问题

·以上的方法都不建议,最好的做法就是返回传入的指针

tips

·不要使用全局变量来在函数间传递参数和结果

·尽量避免使用全局变量

  ·丰田汽车的案子

· *使用全局变量和静态本地变量的函数是线程不安全的

转载于:https://www.cnblogs.com/tqing/p/10821477.html

C语言进阶——全局变量相关推荐

  1. 【C语言进阶深度学习记录】三十五 程序中的堆、栈以及静态存储区(数据区)

    学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 在我之前学习底层的知识的时候,也写过相关的内容.可以对比的学习:[软 ...

  2. 【C语言进阶深度学习记录】五 C语言中变量的属性

    上一篇文章学习了C语言中的类型转换,点击链接查看:[C语言进阶深度学习记录]四 C语言中的类型转换. 文章目录 1 C语言的变量属性 1.1 auto关键字 1.2 register关键字 1.3 s ...

  3. c 包含其他文件_C语言:全局变量在多个c文件中公用的方法!

    用C语言编写程序的时候,我们经常会遇到这样一种情况:希望在头文件中定义一个全局变量,然后包含到两个不同的c文件中,希望这个全局变量能在两个文件中共用. 举例说明:项目文件夹project下有main. ...

  4. Python 百天读书笔记 | Python语言进阶 16-20day

    Python语言进阶 重要知识点 生成式(推导式)的用法 prices = {'AAPL': 191.88,'GOOG': 1186.96,'IBM': 149.24,'ORCL': 48.44,'A ...

  5. Day16-20 Python语言进阶

    Python语言进阶 重要知识点 生成式(推导式)的用法 prices = {'AAPL': 191.88,'GOOG': 1186.96,'IBM': 149.24,'ORCL': 48.44,'A ...

  6. C语言 | 进阶之路第一关

    目录 前言 - 文章概述 深入剖析数据在内存中的存储 数据的类型 整型在内存中的存储 浮点型在内存中的存储 指针进阶 字符指针 指针数组 数组指针 数组传参和指针传参 函数指针 函数指针数组 指向函数 ...

  7. Go语言进阶之路:并发爬虫,爬取空姐网所有相册图片

    上次聊到了<Go语言正则表达式>和<Go语言手撸一个LRU缓存>,这次利用正则表达式来编写一个并发爬虫. 说到爬虫,不得不提到前面写的<Python网络爬虫request ...

  8. 16-20.Python语言进阶

    Python语言进阶 重要知识点 生成式(推导式)的用法 prices = {'AAPL': 191.88,'GOOG': 1186.96,'IBM': 149.24,'ORCL': 48.44,'A ...

  9. ggplot2箱式图两两比较_R语言进阶笔记2 | 长数据与ggplot2

    1. 长数据是什么鬼? 之前介绍了如何将多个性状的箱线图放在一个图上,比如learnasreml包中的fm数据,它有h1~h5五年的株高数据,想对它进行作图. 「数据预览:」 > library ...

最新文章

  1. POJ 1860 Currency Exchange
  2. 鸿蒙 电视 安卓,华为鸿蒙2.0、EMUI 11齐发 打通手机、电视、PC全平台
  3. java自动获取ip_java自动获取电脑ip和MAC地址
  4. html表单样式怎么去掉,HTML表单元素覆盖样式元素问题及其补救之道
  5. 04 | 事件调度层:为什么 EventLoop 是 Netty 的精髓?
  6. 【操作系统】—中断和异常
  7. 论文解读:Structural Optimization Makes Graph Classification Simpler and Better
  8. iOS多线程之GCD
  9. Android开机自启动服务的写法
  10. cmake:execute_process
  11. mysql修改游戏数据_Sqlite3 数据库工具修改游戏数据库文件图文教程
  12. Windows XP IIS PHP5详细配置
  13. Android 性能优化四个方面总结
  14. 计算机word宏,Word用宏来列出所有可用样式-word技巧-电脑技巧收藏家
  15. xampp 安装swoole
  16. Lucene 7.5.0 索引文件之tvxtvd
  17. taotao.sql文件(免积分分享)
  18. 关闭selinux的两种方法!
  19. 火车联网售票数据库设计和余票查询
  20. Geoserver介绍2:geoserver页面介绍

热门文章

  1. Python bytearray/bytes/string区别
  2. java如何让线程阻塞_Java中如何使一个线程进入阻塞态?
  3. python元编程运用_Python 中的元编程
  4. oracle查询本月第一天_oracle获取本月第一天和最后一天及Oracle trunc()函数的用法...
  5. 移除镜像_这是否是你心目中的英雄联盟手游?镜像地图。水晶塔,传送移除
  6. 文件的记录c语言程序,c语言程序学生籍贯信息记录簿设计.docx
  7. java分割汉字_Java分割中英文,并且中文不能分割一半?
  8. Springboot国际化信息(i18n)解析
  9. plsql存过声明游标_plsql编程学习之游标一
  10. C++11新特性选讲 语言部分 侯捷