VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 25051|回复: 4

[原创] 我的c++学习之路(四) ------- c++的内存分配

[复制链接]
61_avatar_middle
在线会员 发表于 2015-1-17 14:49:34 | 显示全部楼层 |阅读模式
这几天实在是太辛苦了,半夜通宵练科目三,白天睡觉,那几天都昏昏沉沉的,考完了调节了好几天才恢复过来,连续好长时间没有发帖了;

     现在进入正题,这次主要说的是c++中对于不同类型的元素的内存分配问题,首先说说计算机中的内存与寻址,我们知道内存中的存储的是二进制数,每个二进制数叫做一个位,8位为一个字节(Bit),1024Bit = 1KB,1024KB = 1MB, 1024MB = 1GB 1024GB = 1TB;每个字节都有自己的编号,该编号就是所谓的地址。计算机中有3类总线分别是地址总线,数据总线,控制总线,地址总线是传递地址信息、数据总线传递的是数据信息,控制总线传递的是控制信息,比如对某一内存采取的是读或是写的信息,举个例子:如果要对某个字节的内存进行写操作,首先要通过CPU发出写的命令,再将相应的内存地址通过地址总线传递给相应的内存,通过控制总线将写的命令传递给该内存,最后将数据通过数据总线来传递给相应的内存,对于读的操作也是类似的,先找到对应的内存,通过控制总线向内存发出命令,内存再将数据通过数据总线传递给CPU。现在一般都是32位的机器(也有64位的),32位表示CPU一次能够处理的数据是32位,寻址能力也是32位二进制数据,就是说可以表示的内存大小是2的32次方,为4GB。
     c++将内存主要分为3类,静态内存(一般用来存储全局变量),动态内存(用于用户自己申请内存),栈(用来存储函数中的变量)。我们都知道内存中存储且只能存储的二进制的数据,因此,计算机在执行我们所写的程序时将一部分内存中的二进制数翻译成指令,将一部分翻译成数据,我们一般习惯将某一连续的空间作为指令或数据,这也就是所谓的数据段和代码段,在汇编中我们需要人为的指定某一具体的内存存储数据,对于数据的取用也需要给出内存地址,但在c++中不需要给出内存地址,但允许我们对内存进行操作,因此出现了一种新的变量,指针变量,用于存储变量的地址(这个以后再说)。但是c++不允许我们访问任意的内存空间,主要是不允许我们访问代码段,(如果允许的话就是在程序运行过程中改变程序代码比如执行了前面的赋值语句,在执行到下一条语句时将上一条改成了相加的语句。在汇编中这个是合法的这个不详细说,以后到指针部分再说)。
        这次就写这么多了,感觉有点少,再附上一个文档,主要讲的是编程规范。。。

编程规范与质量.pdf

867.48 KB, 下载次数: 84, 下载积分: 驿站币 -1





上一篇:专业是软件工程
下一篇:资源分享以及交流
45_avatar_middle
在线会员 发表于 2015-1-19 09:17:09 | 显示全部楼层
多谢楼主分享,PDF下载了。
04_avatar_middle
在线会员 发表于 2015-1-19 09:48:45 | 显示全部楼层
正在找这个,谢谢分享!
51_avatar_middle
在线会员 发表于 2015-10-30 20:06:57 | 显示全部楼层
大家都疯了 猫屎!嘿嘿
46_avatar_middle
在线会员 发表于 2017-11-17 21:33:56 | 显示全部楼层
附上一个文档,主要讲的是编程规范
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-4-24 04:54

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表