IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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和C++内存区域。 -> 正文阅读

[C++知识库]几种变量的范围(生命周期)、数组、指针、C和C++内存区域。

一、几种变量的范围(生命周期):

  • 全局变量(所有函数外部):在文件中定义,在整个文件中有效;不但函数,任何一个角落都可以访问它。
  • 局部变量(函数内部):局部变量的范围从定义时起,到整个函数结束。
  • 块变量(在代码块中有效)
    1.if块
    2.switch块
    3.循环块(for、while)
    4.匿名块

定义变量的规则:让变量的生命周期尽量的,以保证内存尽快释放。


二、数组:

1.定义

多个连续的同种数据类型数据的集合。

2.特点

1.同种数据类型;
2.多个;
3.连续内存块;
4.元素位置从0开始计算;

3.数组出现的必要性,及为什么要使用数组

将多个相同的数据类型的数值之间没有规律性的数据集合在一起,统一访问。这一点是多个同种类型的变量不能解决;

强调:C和C++中的数组,都不能通过数组本身,获取元素数;需要时只能通过计算得到;
任何类型数组的长度计算公式:
int n = sizeof 数组名/ sizeof *数组名;
int n = sizeof(数组名)/ sizeof(*数组名);


三、指针:

C++11-> C++14 -> C++17 -> C++20;

a)内存问题;变量使用内存,指针操作内存;无论哪种,无非读/写两类;
i.单位:字节,记作byte; 无论哪种变量或数组,使用的内存大小都是字节的整数倍。
ii.在内存界,进位为1024;

  1. 1024个字节就是1Kb;
  2. 1024Kb = 1MB;
  3. 1024Mb = 1GB;
  4. 1024Gb = 1Tb;
  5. 024Tb = 1Pb;

b)1Gb = (102410241024) bytes 10亿多字节;我们认为内存是连续的,一个字节紧挨着一个字节,直到所有…,
c)何为内存地址?每个字节从左到右,都有编号;编号用整数表示,这个编号就内存地址!
d)当我们在C或C++中定义各种范围的变量时,编译器将空闲内存分配给这些变量,为程序使用;
e)在C和C++中,用&vname,来得到这个变量的地址,就是它所分配到的内存块的地址,当一个变量占用多个字节的内存块,它的地址是哪个字节的编号呢?首字节的编号!地址格式:%p
f)在一个数组,数组的地址为元素0的地址,元素0的地址就是这个元素的首字节地址;
在这里插入图片描述

a)静态数组;栈区中的数组,数据量少;数组名为常量指针;
b)动态数组;堆区中的数组,数量量大;
i.申请;new
ii.检测;if(ptr==nullptr){ …; exit(1);};
iii.使用; 释放;delete,
只是释放指针变量指向的内存,指针变量不会删除。

四、C和C++的内存区域

  • 栈区:编译器自动分配(不需要程序员操心干预);形参和局部变量、块变量
    i.内存量少;10%左右;不适合大量内存使用;
    ii.分配效率高;
  • 堆区:由程序员申请和释放
    i.内存量大;85%左右;
    ii.分配效率低;
  • 全局区:全局变量和静态变量;
  • 常量区:常量,程序结束后由系统释放;const int x=10;
  • 代码区:存放函数的二进制代码;
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-01 15:31:12  更:2022-05-01 15:32:53 
 
开发: 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年5日历 -2024/5/21 3:29:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码