- 1
- 0
- 约1.76万字
- 约 38页
- 2025-10-23 发布于江苏
- 举报
c语言的几种重要学问点
名目:
1.内存结构
2.指针
字符串解决
裢表
复习大纲中的某些学问点了解
1、内存结构
这是关键中的关键,请认真看完,充分了解,不然请不要看下一节内容。
每个程序一开启都有一个大小为4GB的内存,这个内存叫虚拟内存,是概念上的,真正能用到的,只是很小一局部,通常也就是在几百K到几百M。我们PC中内存,我们称之为物理内存,也就是256M,512M等,虚拟内存和物理内存的如何转换是由操作系统完成的,我们不需要管它。我们只需要管好我们自已程序的那4GB内存就可以了。
点请留心,系统并不让我们全部都可以用。其中背面2GB的内容是留給系统用的,用户是不行以访问的,而且在前面的2GB也有局部区段不能访问,比喻0就不能访问。具体是哪些区段,无须关心。要治理4GB
点请留心,系统并不让我们全部都可以用。其中背面2GB的内容是留給系统用的,用户是不行以访问的,而且在前面的2GB也有局部区段不能访问,比喻0就不能访问。具体是哪些区段,无须关心。
留心:类似于0或是10进制数的16进制表达法,他们是一回事,显示16进制是为了便利显示及计算机计算。
程序都是用来做某些具体的事情,不管做什么事,结构都是很相像。程序开启,就有4GB的虚拟内存,经过CPU的计算,转变内存的内容,最终再复制内存的内容输出,输出的目标地可以是:屏幕、文件、磁盘等外存、端口、网络等。如何输出呢,最终全部都是调用系统的API,由操作系统完成。(这段话,请认真体会,并牢紧记住)
所以我们的关键问题就是:如何把握内存,让内存里的值,变成我们想要的成果。留心:这里的把握,指读取或写入某段内存的内容。
在虚拟内存中,我们通常将其分为4个区域:栈(stack)
堆(heap)
静态区域(static)数据区域(data)
留心:不一样的资料可能到具体的分法,有所不一样,但大致上就是这么,我也是这么了解的。如以如下列图:
有爱好的话,可以参考《Windows关键编程》第三版,里面有具体的阐述。
栈
任何除静态外的变量,数组等。都是被安排到栈中的。这些变量类似于:intx;
charc;chars[10];
整个程序中,栈的区域是一个连续的区域,其大小在VC6.0中,是1M。这个栈的特点有点类似于我们此前学过的数据结构課程中的堆栈,都是后进先出。如何了解呢?看下面的程序:
#includestdio.h
voidExecuteOtherCode
{
/*
...
*/
}
voidTestStack1
{
inta=1;intb=2;
ExecuteOtherCode;
}
voidTestStack2
{
intc=3;intd=4;
ExecuteOtherCode;
}
voidmain
{
TestStack1;
TestStack2;
}
栈的解决在VC6中是从高地址到低地址。执行该程序,运营函数到TestStack1,其中定义一个变量a,此时a就是在栈中安排一段大小为sizeof(int)的内存空间。比喻a的地址a的值就为0x0012ff28,因为a是int型的数据,其占用内存的大小为4B(其具体简介
参见稍后的留心)。所以b地址为0x0012ff24,这两个内存的安排过程我们称之为“入栈”。见以如下列图:
TestStack1完成后,系统则先收回b的空间,再收加a空间,这个过程我们叫“出栈”。即0x0012ff28到0x0012ff28-2*4这段空间的内容不再有用了,即使其值还没有变化。接着再运营到TestStack2函数,也定义了两个int变量c,d,一样进展入栈操作,这么c,d很“可能”就占用了原来a,b的空间,见以如下列图:
任何类型的指针均为
任何类型的指针均为4B,它恰好能指向全部4G的虚拟内存,2的32次方为4G。
这里用到
这里用到“可能”两个字,是因为实际栈中存储着不仅仅是这些变量,包含函数的指针等也是存储在栈中,这么就会导致两个类似函数中的变量所占据的内存空间不一样。
留心:计算占用内存空间的大小,可以用sizeof(x)表达,其中x可以是变量,指针,数组,以及各种类型名等,其返回值为整形数值。每一个类型占用多大空间,这个要特别留心,在我们寻常的32位通常PC机中,常见的有:
char
1B
short
2B
int
4B
long
4B
float
4B
double
8B
数组:
intarr[10];
表达10个
您可能关注的文档
- 广西专业技术人员继续教育公需科目创新与创业能力建设试题和答案86分.doc
- 山东省安全工程师安全生产吊篮脚架搭设施工方案考试题.docx
- 工商管理硕士MBA研究生培养方案.doc
- 学习管理师职业资格培训教程.docx
- 广西四级公共营养师试题.docx
- 电大办公室管理考试答案小抄资料.doc
- 电大领导学基础复习小抄.doc
- 国家开放大学电大商法机考第一套真题题库及答案.docx
- 安全员B证山东省模拟考试题及安全员B证山东省模拟考试题库.docx
- 工作人员考勤打卡管理办法.doc
- 教师教学自我增值评价模型构建尝试与数据采集办法.docx
- 2025-2026秋学校党建品牌创建工作总结:打造党建品牌,深化引领,提升党建工作影响力.docx
- 学生学科思维导图作品征集、评选标准与优秀案例展示.docx
- 副校长在2026年学校节能减排成效汇报讲话会议:总结节能成效持续改进措施建设节约校园.docx
- 教导主任在2026年春季学期教学整改工作部署会讲话:针对问题整改落实改进措施提升质量.docx
- X乡镇党委书记在新任村(社区)党组织书记谈心谈话会上的讲话.docx
- 2026年新学期教学办公区域6S管理标准推行实施方案.docx
- XX市第一二一中学XX市第九十中学2025-2026学年第一学期学校教学常规检查整改报告.docx
- (3篇)XX公司在干部大会上的表态发言.docx
- 在XX医院大型医院巡查反馈问题整改工作推进会上的讲话.docx
原创力文档

文档评论(0)