当前位置: 首页 > news >正文

开发一款视频app多少钱专业的seo外包公司

开发一款视频app多少钱,专业的seo外包公司,网站视觉优化怎么做,宁波网站建设公司比较好目录 一、内存分区模型二、内存分区代码示例三、new 运算符详解 一、内存分区模型 C程序在运行时,将内存分为四个区域,不同的区域赋予不同的生命周期,以提供强大的灵活编程。 代码区:存储程序的二进制代码,通常是只读…

目录

  • 一、内存分区模型
  • 二、内存分区代码示例
  • 三、new 运算符详解

一、内存分区模型

C++程序在运行时,将内存分为四个区域,不同的区域赋予不同的生命周期,以提供强大的灵活编程。
代码区:存储程序的二进制代码,通常是只读的,以防止程序意外修改自身的指令,且是共享的,以减少内存消耗。
全局区:存储全局变量、静态变量和常量,包括已初始化和未初始化的数据。该区域中的数据在程序运行期间一直存在,结束后由操作系统回收。
堆区:由程序员手动分配释放内存。可以使用 new 运算符在堆区分配内存,使用 delete 运算符释放内存。堆区中的数据生命周期由程序员控制,若程序员不释放,则在程序结束时由操作系统回收。
栈区:由编译器自动分配和释放内存,用于存储局部变量函数调用时的参数,栈区中的数据生命周期与函数调用相关。

二、内存分区代码示例

#include <iostream>
using namespace std;// 全局变量,存储在全局区
int g_var = 10;// 静态变量,存储在全局区
static int s_var = 20;// 字符串常量,存储在全局区
const char *str = "Hello, world!";// 常量变量,存储在全局区
const int c_var = 30;// 函数,存储在代码区
void func() {// 局部变量,存储在栈区int a = 10;// 动态分配内存,存储在堆区int *p = new int;*p = 20;cout << "a: " << a << endl;cout << "*p: " << *p << endl;// 释放动态分配的内存delete p;
}int main() {// 调用函数func();return 0;
}

在上面的代码中,当程序开始运行时,操作系统会为程序分配内存空间。其中,代码区用于存储程序的二进制代码;全局区用于存储全局变量、静态变量和常量;堆区和栈区初始为空。

当程序进入 main 函数时,栈区会分配一些空间用于存储函数调用时的参数和返回地址。然后,程序调用 func 函数,在栈区再次分配一些空间用于存储函数调用时的参数和返回地址。

在 func 函数中,定义了一个局部变量 a,它会被分配到栈区中。同时,使用 new 运算符动态分配了一块内存,并使用指针 p 指向它,这块内存会被分配到堆区中。最后,在函数结束前使用 delete 运算符释放了动态分配的内存。
func 函数执行完毕后,栈区中为该函数分配的空间会被自动释放。然后,程序返回到 main 函数,并继续执行。当 main 函数执行完毕后,栈区中为该函数分配的空间也会被自动释放。最后,程序结束运行,操作系统会回收为程序分配的所有内存空间。

三、new 运算符详解

new 运算符是 C++ 中用于在堆区动态分配内存的运算符。它可以用来为单个变量或数组分配内存,返回指向分配内存的指针。例如:

int *p = new int; // 在堆区分配一个 int 类型的内存
int *arr = new int[10]; // 在堆区分配一个长度为 10 的 int 类型数组

使用 new 运算符分配的内存需要使用 delete 运算符进行释放,否则会容易造成内存泄漏。例如:

delete p; // 释放 p 指向的内存
delete[] arr; // 释放 arr 指向的数组内存

new 运算符还可以与构造函数一起使用,用来初始化动态分配的对象。例如:

class MyClass {
public://value(x) 是构造函数的初始化列表中的一条语句,它用于初始化类的成员变量 value。MyClass(int x) : value(x) {}int value;
};MyClass *p = new MyClass(10); // 在堆区分配一个 MyClass 对象,并调用构造函数进行初始化
cout << p->value << endl; // 输出 10
delete p; // 释放 p 指向的内存

此外,new 运算符还支持定位 new,允许在指定的内存地址上构造对象。例如:

char buffer[100];
MyClass *p = new (buffer) MyClass(10); // 在 buffer 的地址上构造一个 MyClass 对象
cout << p->value << endl; // 输出 10
p->~MyClass(); // 调用析构函数销毁对象
http://www.hkea.cn/news/583448/

相关文章:

  • 合肥本地网站网站关键词公司
  • 武汉电商网站建设seopc流量排行榜企业
  • 如何给给公司建立网站seo商学院
  • 让建站公司做网站需要什么最新腾讯新闻
  • 网站开发的意义搜索关键词排名优化
  • 如何建一个论坛网站怎么做营销推广
  • 元凤建盏简介青岛seo
  • 营销型网站套餐cps游戏推广平台
  • 哪些网站做ip向小说网络营销公司经营范围
  • 蜜芽免费网站域名关键词网站排名查询
  • 网站备案要到哪里下载关键词在线挖掘网站
  • 跨境电商开发seo的优化策略有哪些
  • 做网站的费用 优帮云百度广告代运营
  • wordpress儿童卡通主题兰州网站seo服务
  • 8网站建设做网站sem优化师是什么意思
  • 设计师个人网站怎么做百度优化培训
  • 广东海外建设监理有限公司官方网站2345网址导航是病毒吗
  • 深圳网站制作培训宁波网络营销公司
  • 网站建设方案书 模板长清区seo网络优化软件
  • 简述网站的推广策略产品设计
  • 商贸有限公司网站建设此网站服务器不在国内维护
  • 常州个人做网站制作小程序的软件
  • 郑州做网站公司dz论坛如何seo
  • 十堰商城网站建设网络营销seo优化
  • 小欢喜林磊儿什么网站做家教福州seo推广外包
  • 许昌网站开发博客营销
  • 做网站用jquery爱站网关键词挖掘
  • wordpress手动裁剪seo营销推广服务公司
  • 英文网站建设网站海南网站制作公司
  • 网页设计与网站建设主要内容软文营销的特点