基础
Monster7559
这个作者很懒,什么都没留下…
展开
-
静态链表
在分散的内存区域只有地址能唯一标识一个位置,但是在连续的内存中地址和下标都可以唯一的标识一个位置。 将连续的内存区划分为多个节点,节点包括存储数据的数据域和指针域 用第一个节点记录未使用节点,用最后一个节点记录已使用节点。 #include<iostream>#define LINE 22typedef int elemtype;class Node{public...原创 2018-11-28 21:17:44 · 170 阅读 · 0 评论 -
函数默认值,内联函数和函数的重载
函数的默认值实参匹配形参时从左向右匹配,但是从右向左依次赋默认值。 函数默认值不能重复复制例如:①:int fun(int a,int b,int c=30); int fun(int a,int b,int c=30) { return a+b+c; ...原创 2018-11-28 20:50:49 · 4204 阅读 · 1 评论 -
C++类基础
关于空类(1)C++中定义一个空的类型时类,里面没有任何成员变量和成员函数,对该类型求sizeof时,得到的结果应该是1,而不是0,因为空类型中不包含任何信息,本来应该是0,但是当我们声明该类型的实例的时候,必须在内存中占有一定的空间,否则无法使用这些类型,至于占用多少内存由编译器决定,在Visual Studio中每个空类型的实例占用一个字节的空间。(2)当在空类中添加一个构造函数和析构函...原创 2018-12-03 19:50:00 · 228 阅读 · 1 评论 -
对象的生存周期
一般对象的生存周期在函数内,生成时生成,调用析构函数时结束或者return之后。 一般临时对象的结束是在该对象生成的语句分号前调用析构函数。 但是引用会提升临时对象的生存周期,会将生存周期提升的与引用对象的生存周期相同。 指针并不能提升对象的生存周期,不能指向临时对象,因为当该条语句分号结束之后会指向别处出现非法访问。 全局对象的生成在可执行文件加载时,在main函数之后结束 局部静态生...原创 2018-12-03 20:55:28 · 590 阅读 · 0 评论 -
程序的加载
一:程序执行过程:1. .c/.cpp+.h文件预编译:(1)将所有的”#define”删除,并展开所有的宏定义(2)处理所有条件预编译指令,比如”#if” “#endif” “elif” “else” “#endif”(3)处理“#include“预编译指令,将被包含的文件插入到该预编译指令的位置(4)删除所有的注释(5)添加行号和文件标识名,以便于编译时编...原创 2019-04-29 19:23:35 · 283 阅读 · 0 评论 -
目标文件
1.目标文件有三种形式:可重定位目标文件(二进制码和数据组成,其形式可以在编译时与其他可重定位目标文件合并起来,创建一个可执行目标文件)可执行目标文件(二进制码和数据组成,可以直接被复制到内存并执行)共享目标文件(特殊的可重定位目标文件,在加载或运行时被动态加载到内存并进行链接)编译器和汇编器生成可重定位目标文件包括共享目标文件链接器生成可执行目标文件2.当前PC平台...原创 2019-04-29 19:25:59 · 1073 阅读 · 0 评论 -
链接时的重定位与符号解析
一:符号解析1.符号表:由汇编器构造,使用编译器输出到汇编语言.s文件中的符号(1)Local符号与global符号任何带有static属性声明的全局变量或者函数的模块都是私有的,即都是local属性的(local属性符号链接器看不到,链接器只关注global符号)(2)伪节每个符号都被分配到目标文件的某个节。但是有三个特殊的伪节,它们在节头部表中是没有条目的的:ABS代表...原创 2019-04-29 19:32:39 · 1982 阅读 · 0 评论