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

中国建设银行纪念币预约网站百度seo推广方案

中国建设银行纪念币预约网站,百度seo推广方案,icp备案查询网站,哈尔滨做网站哪好文章目录 前言1. 栈(Stack)特点生命周期示例 2. 堆(Heap)特点生命周期示例 3. 静态区(Static/Global 区)a. 已初始化数据段(.data 段)特点生命周期示例 b. 未初始化数据段&#xff0…

文章目录

  • 前言
  • 1. 栈(Stack)
    • 特点
    • 生命周期
    • 示例
  • 2. 堆(Heap)
    • 特点
    • 生命周期
    • 示例
  • 3. 静态区(Static/Global 区)
    • a. 已初始化数据段(.data 段)
      • 特点
      • 生命周期
      • 示例
    • b. 未初始化数据段(.bss 段)
      • 特点
      • 示例
  • 4. 文字常量区(常量区)
    • 特点
    • 生命周期
    • 示例
  • 5. 代码区(Text Segment)
    • 特点
    • 示例
  • 6. 线程局部存储(Thread-Local Storage, TLS)
    • 特点
    • 示例
  • 7.综合示例代码
  • 8.关键区别总结
  • 总结


前言

在 C/C++ 中,变量的存储位置直接影响其生命周期、作用域和访问方式。以下是主要存储区域及其示例代码:


1. 栈(Stack)

特点

特点:自动分配/释放,函数局部变量、参数等,速度快但空间有限(通常几MB)

生命周期

生命周期:函数调用开始到结束

示例

void foo() {int a = 10;          // 栈上分配char buffer[1024];   // 栈上数组
}

2. 堆(Heap)

特点

特点:手动分配/释放malloc/free 或 new/delete),空间大但需管理

生命周期

生命周期:从分配直到显式释放

示例

// C 风格
int *p1 = (int*)malloc(sizeof(int));  // 堆分配
free(p1);
// C++ 风格
int *p2 = new int;       // 堆分配
delete p2;

3. 静态区(Static/Global 区)

a. 已初始化数据段(.data 段)

特点

特点:显式初始化的全局变量、静态变量

生命周期

生命周期:程序启动到结束

示例

int global_var = 42;      // 全局变量,.data 段void func() {static int static_local = 10;  // 静态局部变量,.data 段
}

b. 未初始化数据段(.bss 段)

特点

特点:未显式初始化的全局变量、静态变量(默认初始化为0)

示例

int global_uninit;        // .bss 段(初始化为0)void func() {static int static_uninit;  // .bss 段(初始化为0)
}

4. 文字常量区(常量区)

特点

特点:存放字符串常量和 const 常量(只读)

生命周期

生命周期:程序启动到结束

示例

const char* str = "Hello";  // "Hello" 在常量区,str 自身可能在栈或静态区
const int MAX = 100;        // 可能被编译器优化到常量区或直接内联

5. 代码区(Text Segment)

特点

特点:存放程序的可执行指令(如函数体代码)

示例

void some_function() {  // 函数体的**机器码**存放在代码区// ...
}

6. 线程局部存储(Thread-Local Storage, TLS)

特点

特点:每个线程独立的变量(C11/C++11 起支持 _Thread_local 或 thread_local)

示例

#include <threads.h>
_Thread_local int tls_var;  // 每个线程独立实例

7.综合示例代码

#include <stdlib.h>
#include <stdio.h>// 静态区(.data 段)
int global_initialized = 10;// 静态区(.bss 段)
int global_uninitialized;void func() {// 栈变量int local_stack = 20;// 静态局部变量(.data 或 .bss 段)static int static_local = 30;// 堆分配int* heap_var = (int*)malloc(sizeof(int));*heap_var = 40;free(heap_var);
}int main() {// 栈变量int a = 50;// 堆分配int* b = (int*)malloc(sizeof(int));*b = 60;func();// 常量区const char* str = "Constant String";free(b);return 0;
}

8.关键区别总结

存储区 分配方式 生命周期 典型用途
自动 函数调用期间 局部变量、参数
手动(new/malloc) 显式释放前 动态数据结构
静态区 编译器 程序运行期间 全局变量、静态变量
文字常量区 编译器 程序运行期间 字符串常量、const
代码区 编译器 程序运行期间 可执行指令

理解这些区域有助于避免内存泄漏、悬垂指针等问题,并优化程序性能。


总结

以上就是今天要讲的内容,本文仅仅简单介绍了C/C++中的不同变量存储位置下的变量的分配方式、生命周期、典型用途。

http://www.dtcms.com/wzjs/504294.html

相关文章:

  • 北京网站建设价培训推广 seo
  • 新手学做网站需要注意的几点whois查询
  • 三里河网站建设怎样做好服务营销
  • 进腾讯做游戏视频网站百度在线入口
  • 建设企业网站专业服务河南网站建设制作
  • 免费注册个人网站拓客软件
  • 跟我一起做网站微信营销号
  • 王牌网站做代理推广普通话奋进新征程演讲稿
  • 幼儿园老师对班级网站建设如何做网页推广
  • xp做的网站有连接限制优化关键词技巧
  • 属于软件开发工具的是深圳网站设计十年乐云seo
  • 大企业网站建设哪里好怎么在百度发布个人简介
  • 炫酷的移动端网站市场营销专业就业方向
  • 嘉兴网络建设seo怎么优化步骤
  • 用户体验做的好的网站seo建设
  • 台州网站外包深圳网站推广公司
  • 全球做的比较好的网站电商平台排行榜
  • 小程序代理招商公司seo网站优化服务合同
  • 做复刻衣服买网站苏州seo关键词优化排名
  • wordpress模板作者怎样去除嘉兴优化公司
  • 哪个网站有适合小学生做的题嘉兴seo网络推广
  • 自己做网站 需要会什么6哈尔滨seo优化
  • vk社交网站做婚介百度广告关键词价格表
  • wordpress画廊苏州网站优化公司
  • 制作网站要多少钱视频营销
  • 深圳龙华疫情北京seo优化wyhseo
  • 实用电子商务网站建立百度网站电话是多少
  • 做网站对服务器什么要求高千万不要去电商公司上班
  • 网站运营发展前景网站建设全包
  • 南昌市网站建设推广云搜索神器