C++基础知识:C++内存分区模型,全局变量和静态变量以及常量,常量区,字符串常量和其他常量,栈区,堆区,代码区和全局区
1.C++内存分区模型
C++程序在执行时,将内存大方向划分为4个区域
代码区:存放函数体的二进制代码,由操作系统进行管理的(在编译器中所书写的代码都会存放在这个空间。)
全局区:存放全局变量和静态变量以及常量
栈区:由编译器自动分配释放,存放函数的参数值,局部变量等
堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收
内存四区意义:
不同区域存放的数据,赋予不同的生命周期,给我们更大的灵活编程(方便操作系统管理)
2.程序运行前
在程序编译后,生成了exe(在windows操作系统中)可执行程序,未执行该程序前分为两个区域
1.代码区:
存放 CPU 执行的机器指令
代码区是共享共享的目的是对于频繁被执行的程序,只需要在内存中有一份代码即可代码区只读使其只读的原因是防止程序意外地修改了它的指令
2.全局区:
全局变量和静态变量存放在此.
全局区还包含了常量区,字符串常量和其他常量也存放在此
该区域的数据在程序结束后由操作系统释放
#include<iostream>using namespace std;// 全局变量
//在函数体外创建的变量是全局变量
int flag=0;
//这个flag就是全局变量//const 修饰的全局变量
const int const_a=10;int main(){// 创建局部变量int a=10;
// 在函数体内创建的变量都是局部变量,这里的函数体是main// 在一个变量前面加上关键字static就是静态变量static int d=50;//常量://1.字符串常量
// 字符串指的是用双引号引起来的// const 修饰的变量
// 1.const修饰的全局变量,const修饰的局部变量const int const_b=20;
// 上面是const修饰的局部变量system("pause");return 0;
}

3. 程序运行后
1.栈区:
由编译器自动分配释放,存放函数的参数值,同部变量等注意事项:不要返回局部变量的地址,栈区开辟的数据由编译器自动释放
注意栈区是由编译器管理开辟和释放的,
不要放回地址,因为这个是编译器管理释放的,调用完
函数后该变量就销毁了,地址也被回收了,如果返回地址,
可能访问到一些管理用的其他数据,擅自篡改可能会出现各种各样的问题

2.堆区:
由程序员分配释放,若程序员不释放,程序结束时由操作系统回收在C++中主要利用new在堆区开辟内存
#include<iostream>using namespace std;int* fn(){//利用new关键字可以将数据开辟到堆区域//指针本质也是局部变量,放在栈上,指针保存的数据是放在了堆区int*p= new int (10);return p;
}
int main(){//在堆区中开辟数据int *p=fn();cout<<*p<<endl;system("pause");return 0;
}
相关文章:
C++基础知识:C++内存分区模型,全局变量和静态变量以及常量,常量区,字符串常量和其他常量,栈区,堆区,代码区和全局区
1.C内存分区模型 C程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理的(在编译器中所书写的代码都会存放在这个空间。) 全局区:存放全局变量和静态变量以及常量 栈区:由编译器自动分…...
MySQL面试题-重难点
mysql中有哪些锁?举出所有例子,各个锁的作用是什么?区别是什么? 共享锁:也叫读锁,简称S锁,在事务要读取一条记录时,先获取该记录的S锁,别的事务也可以继续获取该记录的S…...
【Linux杂货铺】期末总结篇3:用户账户管理命令 | 组账户管理命令
🌈个人主页:聆风吟_ 🔥系列专栏:Linux杂货铺、Linux实践室 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 第五章5.1 ⛳️Linux 账户5.2 ⛳️用户配置文件和目录(未完待续)5.2.1 …...
基于STM32设计的超声波测距仪(微信小程序)(186)
基于STM32设计的超声波测距仪(微信小程序)(186) 文章目录 一、前言1.1 项目介绍【1】项目功能介绍【2】项目硬件模块组成1.2 设计思路【1】整体设计思路【2】ESP8266工作模式配置1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献1.4 开发工具的选择1.5 系统框架图…...
Web前端-Web开发HTML基础2-list
一. 基础 1. 写一个列表标签,生成一个有三条记录的无序列表; 2. 写一个列表标签,生成一个有四条记录的无序列表; 3. 写一个列表标签,生成一个有五条记录的无序列表; 4. 写一个列表标签,生成一个…...
MAVSDK-Java安卓客户端编译与使用完整示例
效果: 1.启动PX4容器 2.监听QGC连接端口 3.手机与QGC连接到同一局域网(此例QGC为:192.168.6.250 手机为:192.168.6.86) 4.监听手机mavsdk_server连接端口 5.使用Android Studio打开MAVSDK-JAVA下的examples/android-c…...
JavaEE:Spring Web简单小项目实践二(用户登录实现)
学习目的: 1、理解前后端交互过程 2、学习接口传参,数据返回以及页面展示 1、准备工作 创建SpringBoot项目,引入Spring Web依赖,添加前端页面到项目中。 前端代码: login.html <!DOCTYPE html> <html lang&…...
深度学习 | CNN 基本原理
目录 1 什么是 CNN2 输入层3 卷积层3.1 卷积操作3.2 Padding 零填充3.3 处理彩色图像 4 池化层4.1 池化操作4.2 池化的平移不变性 5 全连接层6 输出层 前言 这篇博客不够详细,因为没有介绍卷积操作的具体计算;但是它介绍了 CNN 各层次的功能…...
解读|http和https的区别,谁更好用
在日常我们浏览网页时,有些网站会看到www前面是http,有些是https,这两种有什么区别呢?为什么单单多了“s”,会有人说这个网页会更安全些? HTTP(超文本传输协议)和HTTPS(…...
汽车零部件制造企业MES系统主要功能介绍
随着汽车工业的不断发展,汽车零部件制造企业面临着越来越高的生产效率、质量控制和成本管理要求。MES系统作为一种综合信息系统,能够帮助企业实现从订单接收到产品交付的全流程数字化管理,优化资源配置,提高生产效率,确…...
常见的五种聚类算法总结
常见的聚类算法总结 1. K-Means 聚类 描述 K-Means 是一种迭代优化的聚类算法,它通过最小化样本点到质心的距离平方和来进行聚类。 思想 随机选择 K 个初始质心。分配每个数据点到最近的质心,形成 K 个簇。重新计算每个簇的质心。重复上述步骤&…...
智能车存在网络安全隐患,如何应设计出更好的安全防护技术?
智能车网络安全防护技术的研究与设计 摘要:随着智能车技术的迅速发展,车辆的网络连接性不断增强,然而这也带来了诸多网络安全隐患。本文深入探讨了智能车面临的网络安全威胁,并提出了一系列创新的安全防护技术设计,旨…...
通讯的概念
通讯的概念 文章目录 通讯的概念1.通讯的基本概念2. 串行通讯与并行通讯2. 全双工、半双工及单工通讯3. 同步通讯与异步通讯4. 通讯速率 1.通讯的基本概念 通讯是指在嵌入式系统中实现数据交换的技术手段,它涉及到硬件与硬件、硬件与软件之间的信息传输。基本概念包…...
Centos7 rpm 安装 Mysql 8.0.28
Centos7 rpm 安装 Mysql 8.0.28 一、检查系统是否已经安装了Mysql 如果安装了则卸载 [rootiZbp1byzaznzn9jncxr010Z /]# rpm -qa | grep mysql[rootiZbp1byzaznzn9jncxr010Z /]# rpm -qa | grep mariadb mariadb-libs-5.5.68-1.el7.x86_64如果安装了 mysql ,maria…...
Linux 多进程编程详解
Linux 多进程编程详解 多进程编程是现代操作系统中一种重要的并发编程技术。通过在同一程序中运行多个独立的进程,可以实现并发处理,充分利用多核处理器的优势,提高程序的运行效率。本文将详细介绍Linux多进程的基本概念、创建方法、进程间通…...
C语言之大小端理解
目录 1前言2 大小端理解与区分3 大小端的识别和基本切换操作4 总结 1前言 在汽车CAN通讯报文中往往会接触到Intel类型和motorola类型,实际项目中涉及到多机通讯也会接触到大小端问题 2 大小端理解与区分 大端(Big_Endian) :低字节放在高地址小端(Little_Endian):…...
GIT相关操作,推送本地分支到远程仓库流程记录学习
git流程 切换到源文件夹:cd 源文件夹克隆远程仓库:git clone [ssh]进入项目文件夹:cd .\project\查看本地分支:git branch获取远程仓库更新,使远程同步:git fetch查看所有分支(包括远程分支&am…...
网络协议 — Keepalived 高可用方案
目录 文章目录 目录Keepalived 是实现了 VRRP 协议的软件Keepalived 的软件架构VRRP StackCheckersKeepalived 的配置Global configurationvrrp_scriptVRRP Configurationvrrp synchroization groupvrrp instancevirtual ip addressesvirtual routesLVS Configurationvirtual_s…...
前端报错adding CSS “touch-action: none“ to this element解决方案
目录 如图所示控制台出现报错: 原因: touch-action 介绍: 解决方案: 1.手动设置touch-action: 2.使用条件渲染: 3.CSS样式隔离: 4.浏览器兼容性: 5. 忽略警告 如图所示控制台…...
使用phpMyAdmin操作MYSQL(四)
一. 学会phpMyAdmin? phpMyAdminhttp://water.ve-techsz.cn/phpmyadmin/ 虽然我我们可以用命令行操作数据库,但这样难免没有那么直观,方便。所以接下来我们使用phpMyAdmin来操作MySQL,phpMyAdmin是众多MySQL图形化管理工具中使用…...
SeekStorm入门指南:5分钟构建你的第一个高性能搜索引擎
SeekStorm入门指南:5分钟构建你的第一个高性能搜索引擎 【免费下载链接】SeekStorm SeekStorm: vector & lexical search - in-process library & multi-tenancy server, in Rust. 项目地址: https://gitcode.com/gh_mirrors/se/SeekStorm 想要快速构…...
OpenClaw(小龙虾AI)Windows一键部署包v2.7.5|零代码+可视化操作
适配系统:Windows10 64 位(纯小白友好版) 核心优势:免命令行、免环境配置、解压即装,内置所有运行依赖,全程可视化操作,新手也能一次成功部署 2026 爆火的开源 AI 智能体! 本文专属…...
自媒体矩阵工具选型避坑!多个平台发布指南,新手也能选对工具
做自媒体这事吧,光靠一个账号,很多时候确实不太容易把流量做起来,所以大多数人,慢慢就会去做多平台、多账号这种矩阵。可问题也很现实,账号一多,平台一散,人就容易被各种切换后台、重复发内容、…...
Windows和Office激活终极指南:KMS_VL_ALL_AIO一键解决方案
Windows和Office激活终极指南:KMS_VL_ALL_AIO一键解决方案 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows和Office的激活问题烦恼吗?每次重装系统都要重新…...
Cocos学习笔记:帧动画制作与动画编辑器使用
一、帧动画基础原理核心逻辑:帧动画本质是逐帧替换精灵(Sprite)的显示图片,通过控制图片切换频率,让静态序列图呈现连续动态效果。视觉原理:人眼存在视觉残留特性,短时间内连续播放 24 帧以上图…...
IC617保姆级教程:用ADEXL和Calculator两步搞定CMOS晶体管的gmid设计曲线
IC617高效设计指南:ADEXL与Calculator协同生成CMOS晶体管gmid曲线的实战解析 在模拟集成电路设计中,gmid曲线作为评估晶体管工作状态的核心工具,直接影响着放大器的增益、噪声和功耗等关键指标。传统方法往往需要反复切换多个工具界面&#x…...
观察Taotoken用量看板如何帮助控制月度API支出
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 观察Taotoken用量看板如何帮助控制月度API支出 在项目开发中,大模型API的调用成本往往是预算管理的重要一环。如果缺乏…...
渝中区宜居、 韧性、智慧城市建设“十五五”规划(征求意见稿) 2026
这份《渝中区宜居、韧性、智慧城市建设 “十五五” 规划(征求意见稿)》,立足渝中区 “重庆母城、都市极核、品质半岛、首善之区” 定位,总结 “十四五” 成效、分析机遇挑战,明确 2026—2030 年总体目标、核心任务与保…...
保姆级教程:在K8s集群上部署Triton Inference Server服务(含TensorRT加速配置)
生产级K8s集群部署Triton Inference Server全流程指南 在AI模型工业化落地的浪潮中,如何将训练好的模型高效、稳定地部署到生产环境,成为众多技术团队面临的共同挑战。本文将聚焦Kubernetes集群环境,详细拆解NVIDIA Triton Inference Server…...
MCP协议技术架构深度解析:构建AI工具生态系统的标准化方案
MCP协议技术架构深度解析:构建AI工具生态系统的标准化方案 【免费下载链接】Awesome-MCP-ZH MCP 资源精选, MCP指南,Claude MCP,MCP Servers, MCP Clients 项目地址: https://gitcode.com/gh_mirrors/aw/Awesome-MCP-ZH MC…...
