C语言进阶——全局变量
全局变量
·定义在函数外面的变量是全局变量
·全局变量具有全局的生存期和作用域
·它们与任何函数都无关
·在任何函数内部都可以使用它们
全局变量初始化
·没有做初始化的全局变量会得到0值
·指针会得到NULL值
·只能用编译时刻已知的值来初始化全局变量
·它们的初始化发生在main函数之前
被隐藏的全局变量
·如果函数内部存在与全局变量同名的变量,则全局变量被隐藏
静态本地变量-1
·在本地变量定义是加上static修饰符就成为静态本地变量
·当函数离开的时候,静态本地变量会继续存在并保持其值
·静态本地变量的初始化只会在第一次进入这个函数做,以后进入函数时会保持上次离开时的值
静态本地变量-2
·静态本地变量实际上是特殊的全局变量
·它们位于相同的内存区域
·静态本地变量具有全局的生存期,函数内的局部作用域
*返回指针的函数
·返回本地变量的地址是危险的(每次离开后,本地变量分配的内存被释放,下次重新进入某函数时,又重新分配内存给本地变量)
·返回全局变量或静态本地变量的地址是安全的
·返回在函数内malloc的内存是安全的,但是容易造成问题
·以上的方法都不建议,最好的做法就是返回传入的指针
tips
·不要使用全局变量来在函数间传递参数和结果
·尽量避免使用全局变量
·丰田汽车的案子
· *使用全局变量和静态本地变量的函数是线程不安全的
转载于:https://www.cnblogs.com/tqing/p/10821477.html
C语言进阶——全局变量相关推荐
- 【C语言进阶深度学习记录】三十五 程序中的堆、栈以及静态存储区(数据区)
学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 在我之前学习底层的知识的时候,也写过相关的内容.可以对比的学习:[软 ...
- 【C语言进阶深度学习记录】五 C语言中变量的属性
上一篇文章学习了C语言中的类型转换,点击链接查看:[C语言进阶深度学习记录]四 C语言中的类型转换. 文章目录 1 C语言的变量属性 1.1 auto关键字 1.2 register关键字 1.3 s ...
- c 包含其他文件_C语言:全局变量在多个c文件中公用的方法!
用C语言编写程序的时候,我们经常会遇到这样一种情况:希望在头文件中定义一个全局变量,然后包含到两个不同的c文件中,希望这个全局变量能在两个文件中共用. 举例说明:项目文件夹project下有main. ...
- Python 百天读书笔记 | Python语言进阶 16-20day
Python语言进阶 重要知识点 生成式(推导式)的用法 prices = {'AAPL': 191.88,'GOOG': 1186.96,'IBM': 149.24,'ORCL': 48.44,'A ...
- Day16-20 Python语言进阶
Python语言进阶 重要知识点 生成式(推导式)的用法 prices = {'AAPL': 191.88,'GOOG': 1186.96,'IBM': 149.24,'ORCL': 48.44,'A ...
- C语言 | 进阶之路第一关
目录 前言 - 文章概述 深入剖析数据在内存中的存储 数据的类型 整型在内存中的存储 浮点型在内存中的存储 指针进阶 字符指针 指针数组 数组指针 数组传参和指针传参 函数指针 函数指针数组 指向函数 ...
- Go语言进阶之路:并发爬虫,爬取空姐网所有相册图片
上次聊到了<Go语言正则表达式>和<Go语言手撸一个LRU缓存>,这次利用正则表达式来编写一个并发爬虫. 说到爬虫,不得不提到前面写的<Python网络爬虫request ...
- 16-20.Python语言进阶
Python语言进阶 重要知识点 生成式(推导式)的用法 prices = {'AAPL': 191.88,'GOOG': 1186.96,'IBM': 149.24,'ORCL': 48.44,'A ...
- ggplot2箱式图两两比较_R语言进阶笔记2 | 长数据与ggplot2
1. 长数据是什么鬼? 之前介绍了如何将多个性状的箱线图放在一个图上,比如learnasreml包中的fm数据,它有h1~h5五年的株高数据,想对它进行作图. 「数据预览:」 > library ...
最新文章
- POJ 1860	Currency Exchange
- 鸿蒙 电视 安卓,华为鸿蒙2.0、EMUI 11齐发 打通手机、电视、PC全平台
- java自动获取ip_java自动获取电脑ip和MAC地址
- html表单样式怎么去掉,HTML表单元素覆盖样式元素问题及其补救之道
- 04 | 事件调度层:为什么 EventLoop 是 Netty 的精髓?
- 【操作系统】—中断和异常
- 论文解读:Structural Optimization Makes Graph Classification Simpler and Better
- iOS多线程之GCD
- Android开机自启动服务的写法
- cmake:execute_process
- mysql修改游戏数据_Sqlite3 数据库工具修改游戏数据库文件图文教程
- Windows XP IIS PHP5详细配置
- Android 性能优化四个方面总结
- 计算机word宏,Word用宏来列出所有可用样式-word技巧-电脑技巧收藏家
- xampp 安装swoole
- Lucene 7.5.0 索引文件之tvxtvd
- taotao.sql文件(免积分分享)
- 关闭selinux的两种方法!
- 火车联网售票数据库设计和余票查询
- Geoserver介绍2:geoserver页面介绍
热门文章
- Python bytearray/bytes/string区别
- java如何让线程阻塞_Java中如何使一个线程进入阻塞态?
- python元编程运用_Python 中的元编程
- oracle查询本月第一天_oracle获取本月第一天和最后一天及Oracle trunc()函数的用法...
- 移除镜像_这是否是你心目中的英雄联盟手游?镜像地图。水晶塔,传送移除
- 文件的记录c语言程序,c语言程序学生籍贯信息记录簿设计.docx
- java分割汉字_Java分割中英文,并且中文不能分割一半?
- Springboot国际化信息(i18n)解析
- plsql存过声明游标_plsql编程学习之游标一
- C++11新特性选讲 语言部分 侯捷