
C++中的静态联编和动态联编
发布日期:2021-05-07 22:09:35
浏览次数:23
分类:精选文章
本文共 830 字,大约阅读时间需要 2 分钟。
文章目录
前言
本文主要介绍C++编程中,静态联编和动态联编的概念。静态联编和动态联编是C++中的两种主要的地址分配的决策策略。一、静态联编
静态联编的决策策略是指,在对C++代码进行编译时,就进行地址和内存分配。使用静态联编的常见的地方就是申明一个变量:当声明某一类型的变量之后,编译器在编译相应源代码的时候,根据其数据类型分配内存空间和地址。如下代码所示,即使静态联编:int a; // 在编译时,即确定好该变量的地址,并分配四字节内存(int为四字节)空间;double b;// 同上float c; // 同上
二、动态联编
动态联编的决策策略是指,在运行C++程序时,根据代码逻辑才给变量分配内存和地址。常用的动态联编是给指针new一个动态地址:在申明一个指针变量之后,若不是直接指向已存在的变量,那么就是通过new动态分配内存和地址进行初始化。如下代码所示:int *p = new int;*p = 10; // 如果没有上句代码后面的new int, 那么执行改代码就会出错delete p; // 记得不再使用new分配的内存地址时,一定要用delete释放内存,否在将会造成内存泄漏显然上述代码没有体现动态联编的策略,为了体现该决策策略,可以定义一个简单的状态机,如下代码所示:
int flag;int a = 66;int *p;cin>>flag;switch(flag){ case 1:p = &a; break;case 0:p = new int; *p = 88; break;}
上述代码相当于定义了一个简单的状态机。先设置一个标志位,然后进行输入,如果flag=1,则将前面事先定义的int指针指向定义的变量a,若是flag=0,则对p动态分配内存,然后再进行赋值操作为88。
动态联编的优点很明显,就是程序员可以决定什么时候为指针分配内存地址,这样可以有效的利用内存空间。
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年04月20日 18时45分21秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
hibernate正向生成数据库表以及配置——hibernate.cfg.xml
2021-05-14
javaWeb服务详解(含源代码,测试通过,注释) ——Emp的Dao层
2021-05-14
java实现人脸识别源码【含测试效果图】——Dao层(IUserDao)
2021-05-14
使用ueditor实现多图片上传案例——前台数据层(Index.jsp)
2021-05-14
ssm(Spring+Spring mvc+mybatis)——saveDept.jsp
2021-05-14
JavaScript操作BOM对象
2021-05-14
解决Chrome播放视频闪屏黑屏无法播放
2021-05-14
Git简单理解与使用
2021-05-14
echarts 基本图表开发小结
2021-05-14
二分查找.基于有序数组的查找方法.704
2021-05-14
制作JS验证码(简易)
2021-05-14
adb通过USB或wifi连接手机
2021-05-14
泛型机制 Generic
2021-05-14
包装类
2021-05-14
JDK9-15新特性
2021-05-14
集合继承结构
2021-05-14