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.mfbz.cn/a/599758.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

web 基础之 HTTP 请求

web 基础 网上冲浪 就是在互联网(internet)上获取各种信息,进行工作,或者娱乐,他的英文表示surfing the Internet,因 “surfing”d的意思是冲浪,即成为网上冲浪,这是一种形象说法, 也是一个非…

交易复盘-20240507

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 一支股票 10%的时候可以操作, 90%的时间适合空仓等待 蔚蓝生物 (5)|[9:25]|[36187万]|4.86 百合花…

SpringBootWeb入门

SpringBoot可以帮助我们快速的构建应用程序、简化开发、提高效率 创建SpringBoot工程,并勾选web开发相关依赖 定义HelloController类,添加方法,并添加注解 运行测试 创建SpringBoot工程(联网下载) 在File里面点击new Module 点击next 修…

Linux\_c输出

第一条Linux_c输出 初界面 : ls # 显示目录下的文件cd # 进入到某个目录 # 比如 我进入了Codels # 发现没有显示, 说明为文件下为空vim cpucdoe.c # 创建一个 .c的源码文件进入到了vim的编辑界面: i # 按i 就可以进行编辑 , 下面显示插入标识在编辑模式下, 可以通…

计算图:深度学习中的链式求导与反向传播引擎

在深度学习的世界中,计算图扮演着至关重要的角色。它不仅是数学计算的图形化表示,更是链式求导与反向传播算法的核心。本文将深入探讨计算图的基本概念、与链式求导的紧密关系及其在反向传播中的应用,旨在为读者提供一个全面而深入的理解。 计…

练习项目后端代码解析切面篇(Aspect)

前言 之前注解篇时我说,通常情况下一个自定义注解一般对应一个切面,虽然项目里的切面和注解个数相同,但是好像有一个名字看起来并不对应,无所谓,先看了再说。 ExceptionLogAspect切面 我在里面做了具体注释&#x…

使用Simulink Test进行单元测试

本文摘要:主要介绍如何利用Simulink Test工具箱,对模型进行单元测试。内容包括,如何创建Test Harness模型,如何自动生成excel格式的测试用例模板来创建测试用例,如何手动填写excel格式的测试用例模板来手动创建测试用例…

Golang Map类型

文章目录 Map介绍Map的定义方式Map的增删查改新增和修改Map元素查找Map元素删除Map元素遍历Map元素 Map元素排序Map切片 Map介绍 Map介绍 在Go中,map是哈希表的引用,是一种key-value数据结构。map类型写作map[K]V,其中K和V分别对应key和value…

系统维护启动盘 优启吧

优启吧-《优启时代系统维护盘》2025典藏版(UD/ISO)

亿发解密:数据中台管理系统,引领企业数字化转型的智能数据体系

在当今数字化时代,数据已成为企业发展的关键驱动力。为了更好地利用数据,提升业务水平,企业需要建立一套完备的数据管理体系,而数据中台便应运而生。 什么是数据中台 数据中台是集方法论、组织和工具于一体的智能大数据体系。它…

一起深度学习(AlexNet网络)

AlexNet神经网络 代码实现: 代码实现: import torch from torch import nn from d2l import torch as d2lnet nn.Sequential(# 采用了11*11的卷积核来捕捉对象,因为原始输入数据比较大#步幅为4 ,可减少输出的高度核宽度。#输出通…

微搭低代码入门06分页查询

目录 1 创建自定义代码2 编写分页代码3 创建页面4 创建变量5 配置数据列表总结 我们在数据模型章节介绍了微搭后端服务编写的三种方式,包括Http请求、自定义代码、云函数。本篇我们详细讲解一下利用自定义代码开发分页查询的功能。 1 创建自定义代码 打开控制台&am…

Adaboost (BiLSTM-Adaboost ELM-Adaboost RF--Adaboost RVM-Adaboost SVM-Adaboost)

Adaboost Adaboost(多输入单输出matlab)代码获取戳此处代码获取戳此处 Adaboost是一种迭代式集成学习算法,全称为“Adaptive Boosting”,即自适应增强。该算法的核心思想是针对同一个训练集训练不同的分类器(弱分类器&…

win10禁止自动更新的终极方法

添加注册表值 1.运行,输入regedit 2.打开注册表编辑器依次进入以下路径“计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings”。 3.在Settings项中,新建DWORD(32位)值(D),重命名为以下命名“Fl…

《ESP8266通信指南》12-Lua 固件烧录

往期 《ESP8266通信指南》11-Lua开发环境配置-CSDN博客 《ESP8266通信指南》10-MQTT通信(Arduino开发)-CSDN博客 《ESP8266通信指南》9-TCP通信(Arudino开发)-CSDN博客 《ESP8266通信指南》8-连接WIFI(Arduino开发…

【C语言】用数组和函数实现扫雷游戏

用数组和函数实现扫雷游戏 游戏界面&#xff1a; 代码如下&#xff1a; game.h #pragma once #include <stdio.h> #include <stdlib.h> #include <time.h> #define EASY_COUNT 10 #define ROW 9 #define COL 9 #define ROWS ROW2 #define COLS COL2 //初始…

PXE批量安装

系统装机的三种引导方式 u盘光盘网络装机 光盘&#xff1a; 1.类似于usb模式 2.刻录模式 系统安装过程 加载boot loader Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序&#xff0c;我们可以初始化硬件设备、建立内存空间的映射图&#xff0c;从…

jmeter分布式集群压测

目的&#xff1a;通过多台机器同时运行 性能压测 脚本&#xff0c;模拟更好的并发压力 简单点&#xff1a;就是一个人&#xff08;控制机&#xff09;做一个项目的时候&#xff0c;压力有点大&#xff0c;会导致结果不理想&#xff0c;这时候找几个人&#xff08;执行机&#x…

java10基础(this super关键字 重写 final关键字 多态 抽象类)

目录 一. this和super关键字 1. this关键字 2. super关键字 二. 重写 三. final关键字 四. 多态 五. 抽象类 1. 抽象方法 2. 抽象类 3. 面向抽象设计 一. this和super关键字 1. this关键字 this 当前对象的引用 this.属性 this.方法名() this() -- 调用构造函数 …

电源功率模组: 完整的设计和验证流程解决四个维度的设计挑战

概述 电动汽车、新能源、光伏、风电等领域广泛使用高功率开关电源功率模组。IGBT和MOSFET是模组中常用器件。本文讨论这些技术&#xff0c;以及为实现高达1700伏特电压、1600安培电流、温度稳定和低电磁辐射的复杂指标带来的设计挑战。本文也总结今天的设计方法和优缺点。最后…
最新文章