以下为《C 期末复习资料》的无排版文字预览,完整格式请下载
下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。
C++期末复习资料
第三章 C++语言基础
1.基本数据类型
/
变量和常量
声明全局变量:extern 类型 变量名;
指针和引用
3.1指针的特点
指针持有一个对象的地址,称为指针“指向”这个对象
通过指针可以间接操纵它指向的对象
指针解引用(*):通过解引用操作可以间接访问指针指向的对象
指针的典型用法
构建链式的数据结构,如链表和树
管理程序运行时动态分配的对象
作为函数的参数
void*指针
可以持有任何类型的地址值
相关的值是个地址,但是该地址保存的对象类型不知道
不能操纵void指针指向的对象,而只能传送该地址值或者和其他地址值进行比较
C++不允许void指针到其他类型指针的直接赋值
3.2 引用:
引用又称为别名,它可以作为对象的另一个名字,通过引用可以间接地操纵对象
在程序中,引用主要用作函数的参数。
引用的定义和初始化:
引用由类型标识符和一个取地址符(&)来定义
type& refVariable = leftValue;
特点:引用必须被初始化,初始值是一个有内存地址的对象
引用一旦初始化,就不能再指向其他的对象,对引用的所有操作都会被应用在它所指向的对象上
引用的初始化和赋值不同
初始化时引用“指向”一个对象
赋值时,引用被作为所指对象的别名
3.3指针和引用的区别:
定义和初始化:指针保存指定类型的对象的地址,一个指针可以指向同类型的不同对象。引用是一个对象的别名,定义引用时必须用有内存地址的对象初始化,引用在初始化之后,一直指向该对象。
使用方式:指针通过解引用(*)运算间接访问指向的对象。引用作为对象的别名,可以直接访问对象
有空指针没有空引用。
指针之间的赋值会改变指向关系,引用不会改变。
复合数据类型
Union:和struct语法类似,数据成员的存储方式不同
每个成员都从共用体变量的首地址开始存储,所以每次只能使用一个成员
union变量占据的内存空间大小是其最大成员的大小
使用union可以节省空间,但是容易出错
String和vector
String:两个字符串的比较使用关系运算符“==”
获得字符串s长度使用s.size()操作
判断字符串s是否为空可以使用s.empty()操作,结果是bool值
s.at(index)返回位于index的字符的引用
Vector:可以定义任何类型的vector
vector对象可以直接相互赋值,也可以用一个vector对象初始化另一个vector对象
size()操作返回vector中的元素个数,empty()操作,测试vector是否为空。
push_back()操作向vector的末尾插入元素,pop_back()操作删除vector末尾的元素。
front()返回第一个元素的引用,back()返回最后一个元素的引用
vector上的指针——迭代器:vector v;
定义格式:
vector::iterator it;
*it返回it指向的vector元素的引用
v.begin() 返回v的第一个元素的迭代器
v.end()返回v的最后一个元素的下一个的迭代器
运算符和表达式
new运算符:在堆上动态分配空间,创建对象,并返回对象的地址
Delete运算符:释放new分配的单个对象。delete 指针;释放new分配的数组
delete[] 指针;定位new没有对应的delete表达式
sizeof表达式有以下三种形式sizeof (type name),sizeof (object),sizeof object
7.语句
8 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 的其他函数调用,称为静态函数
一个源文件中定义的静态全局对象在该程序的其他源文件中是不可见的
注意:关键字static的多重语义
静态存储期
全局对象、名字空间作用域对象、文件作用域对象、用static和extern声明的对象都具有静态存储期,它们的存储时间持续于整个程序的运行期间。
static局部对象也具有静态存储期
静态存储对象的生存期从被创建持续到程序结束。
自动存储期
auto局部对象、register局部对象都具有自动存储期
这些对象的生存期持续到创建它们的块结束时为止
动态存储期
用运算符new分配的对象具有动态存储期,其存储期持续到对象被delete释放为止,由程序员控制。
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。
以上为《C 期末复习资料》的无排版文字预览,完整格式请下载
下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。