一.程序的内存模型--C++内存四区--程序运行前


前言

本文记录本渣渣依据黑马程序员C++课程视频学习C++笔记
本节记录内存四区

1.内存分区模型

C++程序在执行时,将内存大方向划分为4个区域

  • 代码区:存放函数体的二进制代码,由操作系统进行管理
  • 全局区:存放全局变量和静态变量及常量
  • 栈区:由编译器自动分配释放,存放函数的参数值,局部变量等
  • 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收

内存四区的意义

  • 不同区域存放的数据,赋予不同的生命周期,让我们能够更灵活地编程

1.1程序运行前

在程序编译后,生成了.exe可执行程序,未执行该程序前分为两个区域

代码区

  • 存放CPU执行的机器指令
  • 代码区时共享的,共享的目的时对于频繁被执行的程序,只需要在内存中有一份代码即可
  • 代码区时只读的,使其只读的原因时防止程序意外地修改了之中的指令

全局区

  • 全局变量和静态变量存放在此
  • 全局区还包含了常量区,字符串常量和其他常量也存放在此
  • 该区域的数据在程序结束后由操作系统释放


存储变量:全局变量、静态常量
存储常量:字符串常量,const修饰的全局变量(全局常量)

可通过简单代码查看地址判断这些数据大致在同一区域

#include <iostream>

using namespace std;

int global_value = 10;
const int global_constant = 10;
static int global_Static_variables = 10;

int main() {
	static int Static_variables = 10;
	cout << "&global_value		 = " << int(&global_value)<< endl;
	cout << "&Static_variables	 = " << int(&Static_variables) << endl;
	cout << "&global_constant	 = " << int(&global_value) << endl;
	cout << "&global_Static_variables = " << int(&global_Static_variables) << endl;
	cout << "&string_constant	 = " << int(&"abcd") << endl;
}

运行结果(运行结果不唯一)
运行结果

总结

  • C++在程序运行前分为全局区和代码区
  • 代码区的特点时共享和只读
  • 全局区中存放全局变量、静态变量、常量
  • 常量区中存放const修饰的全局变量和字符串常量
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: QtGuiHDev-4.dll是一个动态链接库文件,它是Qt框架的一部分。Qt是一个跨平台的C++应用程序开发框架,它是由Qt公司开发的。QtGuiHDev-4.dll文件包含了Qt框架中图形用户界面的一些基本元素和函数,包括窗口、按钮、文本框、文本编辑器等控件,以及布局管理等。这些元素和函数可以帮助开发人员快速构建和部署跨平台的GUI应用程序。 当用户在运行一个Qt开发的应用程序时,会自动调用QtGuiHDev-4.dll文件,以加载和初始化GUI部分所需的库文件和数据。如果该文件出现错误或损坏,应用程序可能会崩溃或无法正常启动。因此,当用户遇到QtGuiHDev-4.dll错误时,需要尝试重新安装Qt框架,或修复或替换该文件。通常可以从Qt官方网站或第三方下载站点下载QtGuiHDev-4.dll文件。但需要注意的是,下载的文件必须与操作系统和应用程序的位数完全匹配,否则可能会导致不兼容或无法加载的问题。 ### 回答2: qtguihdev-4.dll是QT库中的一个动态链接库文件,它包含了GUI组件的定义和实现。QT是一个跨平台的C++应用程序开发框架,它为开发者提供了一些常用的函数、类和工具,使得开发GUI应用程序变得更加简单和方便。 QT库中的qtguihdev-4.dll文件主要实现了GUI组件的渲染、事件处理和界面布局等功能。比如,它可以实现按钮、文本框、标签等基本控件的显示和交互功能,也可以实现复杂的布局和嵌套结构。同时,QT库还提供了一些高级控件和图形绘制工具,如表格控件、绘图域和3D模型等。 当我们在开发QT应用程序时,需要使用到这个qtguihdev-4.dll文件。在程序编译阶段,编译器会将程序所需要的动态链接库文件和其他资源打包成可执行文件。在程序运行时,动态链接库文件将会被加载到内存中,并提供需要的功能和接口。 总之,qtguihdev-4.dll是QT库中的一个重要组成部分,它为开发者提供了丰富的GUI编程工具和功能,使得我们能够更加方便地开发出高质量的跨平台应用程序。 ### 回答3: qtguihdev-4.dll是Qt库中的一个动态链接库,它包含了一些Qt基础GUI组件的实现。Qt是一个跨平台的C++应用程序框架,允许开发人员通过一套API设计高效、可扩展的图形界面和其他应用程序功能。 当你运行一个使用Qt编写的应用程序时,qtguihdev-4.dll将被加载到内存中,提供一些基础GUI组件的功能。这些组件包括窗口、标签、按钮、工具栏等,它们都是构建一个现代图形用户界面所必需的。 如果在你的系统中缺少qtguihdev-4.dll或者它受到损坏,你的Qt应用程序可能会无法正常启动或打开。此时,你需要尝试在网络上查找并重新安装Qt库,以便修复这个问题。 总之,qtguihdev-4.dll是Qt编程时非常重要的一个库文件,它包含了基础GUI组件的核心实现。开发人员应该了解它的作用,以便在开发中使用它的相关功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值