C++变量的作用域与存储类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一 变量的作用域和存储类型

1 变量的作用域(Scope)

指在源程序中定义变量的位置及其能被读写访问的范围分为局部变量(Local Variable)和全局变量(Global Variable)

1)局部变量(Local Variable)

在语句块内定义的变量
形参也是局部变量
特点:
生存期是该语句块,进入语句块时获得内存,仅能由语句块内语句访问,退出语句块时释放内存,不再有效;
定义时不会自动初始化,除非程序员指定初值;
并列语句块各自定义的同名变量互不干扰
形参和实参可以同名。

2)全局变量(Global Variable)

在所有函数之外定义的变量
生存期是整个程序,从程序运行起占据内存,程序运行过程中科随时访问,程序退出时释放内存;
有效范围是从定义变了的位置开始到本程序结束。
在这里插入图片描述

2 变量的存储类型(Storage Class)

指数据在内存中存储的方式
即编译器为变量分配内存的方式,它决定变量的生存期。
存储类型 数据类型 变量名;

C程序的存储类别
Auto型(自动变量)
static型(静态变量)
extern型(外部变量)
register型(寄存器变量)
在这里插入图片描述

3) 变量的存储类型(Storage Class)

变量的生存期(Lifetime),决定何时“生”,何时"灭"。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3 自动变量和静态变量

1) auto数据类型 变量名;

进入语句块时自动申请内存,退出时自动释放内存;
动态局部变量,缺省的存储类型;
静态变量

2)静态变量

static 数据类型 变量名;
存储期间同动态局部变量;
生存期为整个程序运行期间;

在这里插入图片描述
在这里插入图片描述

3 寄存器变量

1) 寄存器

CPU内部容量有限,但速度极快的存储器
register 类型名 变量名;
在这里插入图片描述
使用频率比较高的变量声明为register,可使程序更小,执行速度更快。
现代编译器有能力自动把普通变量优化为寄存器变量,并且忽略用户的指定。
所以一般无需特别声明变量为register.

2) 变量的作用域和存储类型

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/675630.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YzmCMS 7.0任意函数调用RCE 漏洞研究分析

YzmCMS是一款基于YZMPHP开发的一套轻量级开源内容管理系统,YzmCMS简洁、安全、开源、免费,可运行在Linux、Windows、MacOSX、Solaris等各种平台上,专注为公司企业、个人站长快速建站提供解决方案。 YzmCMS 某些接口调用了 db_pdo类的where方法 导致了远程命令执行漏洞&#xf…

python菜鸟级安装教程 -下篇(安装编辑器)

来来~接着上篇的来~ 安装好python.exe之后,我们可以根据cmd命令窗口,码代码。 这算最简单入门了~ 如果我们在安装个编辑器。是什么效果,一起体验一下吧 第一步,下载编辑器,选择官网,下载免费版本入门足…

图解HTTP(2、简单的 HTTP 协议)

HTTP 协议用于客户端和服务器端之间的通信 请求访问文本或图像等资源的一端称为客户端,而提供资源响应的一端称为服务器端。 通过请求和响应的交换达成通信 请求必定由客户端发出,而服务器端回复响应报文 请求报文是由请求方法、请求 URI、协议版本、…

【Gaea+UE5】创建基本的大型世界场景

目录 效果 步骤 一、在Gaea中生成地形 二、确定导出的地形规模 三、在UE中创建地形 四、验证UE创建的地形规模是否正确 五、使用M4自动地形材质 效果 步骤 一、在Gaea中生成地形 1. 打开Gaea官网下载软件 2. 打开Gaea软件,我们可以选择一个预设的山体 创…

【记录】Python3| 将 PDF 转换成 HTML/XML(✅⭐PyMuPDF+tqdm)

本文将会被汇总至 【记录】Python3|2024年 PDF 转 XML 或 HTML 的第三方库的使用方式、测评过程以及对比结果(汇总),更多其他工具请访问该文章查看。 文章目录 PyMuPDF 使用体验与评估1 安装指南2 测试代码3 测试结果3.1 转 HTML …

docker资源限额

多数的应⽤场景要对Docker容器的运⾏内存进⾏限制,防⽌其使⽤过多的内存。 格式:-m或--memory 正常的内存大小 [rootadmin ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS …

封装Springboot基础框架功能-03

在些模块中汇总了一些web开发常用的配置和功能。 模块源码结构 Restful API常用定义 QueryParam请求参数 Data public class QueryParam {private String key;private String value; }RestfulController实现 RestfulController.java,主要汇总一些常用的restful的…

C++基础——深拷贝和浅拷贝

C中类的拷贝有两种:深拷贝,浅拷贝:当出现类的等号赋值时,即会调用拷贝函数 一、概念 浅拷贝:同一类型的对象之间可以赋值,使得两个对象的成员变量的值相同,两个对象仍然是独立的两个对象&#…

所向披靡のmakefile

在VS里敲代码,只需要FnF5就可以直接运行勒,在Linux下敲代码却要即敲命令还要用编辑器还要用编译器,那在Linux下有没有能帮我们进行自动化组建的工具呢? 当然有,超级巨星:makefile!!…

linux进阶篇:Nginx反向代理原理与案例详解

Linux服务搭建篇:Nginx反向代理原理与案例详解 一、什么是正向代理 举个栗子: 我们在校外、公司外,是访问不到学校、公司的内网的,但是我们想要访问内网资源时,会用到VPN。而一般内网会存在一个VPN服务器&#xff0c…

数据结构-线性表-应用题-2.2-13

1)使用一个用于标记的数组B[n], B的下标也就是括号里的值对应正整数,B[n]对应的值用来标记是否已经出现过,1表示出现,0则未出现,B[0]对应正整数1,B[n-1]对应正整数n,从A[0]开始遍历A,若能查找到第一个满足B…

STM32单片机ADC功能详解

文章目录 1. ADC概述 2. ADC结构图 3. 引脚定义 4. 转换模式 5. 数据对齐 6. 转换时间 7. 硬件电路 8. STM32使用ADC单/多通道检测数据 1. ADC概述 功能:ADC是一个将模拟信号(如电压)转换为数字信号的设备。在微控制器中&#xff0c…