| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> [ 深度解剖C语言 ] 关键字 ---- auto register -> 正文阅读 |
|
[C++知识库][ 深度解剖C语言 ] 关键字 ---- auto register |
目录 一:auto在学习关键字auto之前我们需要先了解两个概念:作用域和生命周期。 作用域作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用 的 而限定这个名字的可用性的代码范围就是这个名字的作用域。 局部变量的作用域:作用范围包含在代码块中的变量。在哪儿内定义,只在其范围内有效。 我们用简单代码来理解一下:
这段代码中我们可以看到我们创建了两个变量,一个是全局变量 a ;一个是局部变量 b 。 根据作用域的定义我们可以知道: 全局变量a的作用域是整个工程: ?局部变量b 的作用域只是包含在if括号内部: ?为了我们更好的理解这个代码我们写几种代码,加深理解:
这段代码我们发现报错 ?虽然我们b创建了,但是b是一个局部变量,作用域只在代码块内部( if 括号内部 ),不包括printf这一行,因此程序报错,访问不到b。 特殊的: 当局部变量和全局变量发生冲突时,局部变量优先。 这句话的意思是:当定义的变量名相同时,局部变量优先
我们打印就可发现: ?当全局变量和局部变量发生冲突时,局部变量优先。为了避免这种问题的出现,尽量不要使用相同的变量名定义。 生命周期变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段 局部变量的生命周期是:进入局部变量所在范围开始 ----> 出了局部变量的范围结束 全局变量的生命周期是:整个程序的生命周期。生命周期main函数进入--->结束 整个程序的生命周期 为了更方便的理解:我们可以通俗的理解为,一个变量的存活时间,就是这个变量的生命周期。 例:古代某一皇帝从出生-->驾崩。从出生到驾崩这一段时间就是这位皇帝的生命周期。
autoauto号称是最宽宏大量的关键字 auto的使用:一般在代码块中定义的变量,局部变量,默认都是auto修饰的。只在本代码块中使用 auto可省略。 用代码解释就是:
由于auto只可修饰局部变量 因此第一句auto int g_val = 100;是错误的 在之后的代码内部的全局变量中,auto所修饰的局部变量中的auto都是可以省略的,因此我们也说auto是最古老的关键字,我们在平时的编程中也可省略auto。 二:registerregister -- 寄存器? ?----最快的关键字 我们首先要了解存储等级 离CPU越近的存储单元,效率越高,成本单价越高。 离CPU越远的存储单元,效率越低,成本单价越低。 对于任意一种硬件而言,上游硬件都是下游硬件的缓存,因此我们可以说寄存器是下游存储设备的缓存。 寄存器的本质:本质是在硬件层面上,提高计算机的运算效率。 什么变量可以用register
提示:不要大量使用register,因为寄存器的数量有限。 由于使用register关键字,直接将val存在寄存器内,因此val没有内存地址,因此不能进行取地址操作。 总结:包括作用域,生命周期,auto和register关键字的理解是使用。 大家觉得有所收获的话可以点赞收藏+关注哦~ |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 12:23:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |