CC++基础及算法整理

CC++基础及算法整理

ID:37918425

大小:126.50 KB

页数:21页

时间:2019-06-02

CC++基础及算法整理_第1页
CC++基础及算法整理_第2页
CC++基础及算法整理_第3页
CC++基础及算法整理_第4页
CC++基础及算法整理_第5页
资源描述:

《CC++基础及算法整理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、9月15日1、static有什么用途(请至少说明两种)a)限制变量的作用域b)设置变量的存储域问题扩展:1.1、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?全局变量(外部变量)的说明之前再冠以static就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,即

2、只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。从以上分析可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头

3、文件static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝1.2、程序的局部变量存在于(堆栈)中,全局变量存在于(静态区)中,动态申请数据存在于(堆)中。问题扩展:1.2.1、什么是栈?什么是堆?    在具体的C/C++编程框架中,这两个概念并不是并行的。深入到汇编级进行研究就会发现,栈是机器系统提

4、供的数据结构,而堆是由C/C++函数库提供的。这两个概念可以从数据结构和系统两个层次去理解:1、从数据结构层次理解,栈是一种先进后出的线性表,只要符合先进后出的原则的线性表都是栈。至于采用的存储方式(实现方式)是顺序存储(顺序栈)还是链式存储(链式栈)是没有关系的。堆则是二叉树的一种,有最大堆最小堆,排序算法中有常用的堆排序。2、从系统层次理解,栈是系统为运行的程序分配的先进后出的存储区域。在学习bootloader时知道,在上电后初始化阶段要为各个工作模式下分配堆栈,这里的堆栈实际上就是指stack,堆栈的说法只是因为历史的原因。在执行函数时,函数内部局部变量的

5、存储单元可以在栈上创建(针对CISC架构而言,RISC架构下,局部变量的存储单元是在寄存器上创建),函数执行结束时这些存储单元自动被释放。堆是系统管理的可以被程序利用的全局存储空间,动态内存分配就是从堆上分配。1、引用与指针有什么区别?1)引用必须被初始化,指针不必。2)引用初始化后不能被改变,指针可以改变所指的对象。3)不存在指向空值的引用,但是存在指向空值的指针。问题扩展:2.1什么是引用,什么是指针?引用只是一个变量的别名,程序中的应用不占据实际的内存空间,而指针则是一个数值,其意义就是被指向数据所存放的内存地址,而指针同样也是一个数据,他的存放需要占据内存

6、空间。使用引用来代表其它变量时,对于整个程序而言会更加安全。而使用指针可以使得整个程序更加灵活。9月16日1、描述实时系统的基本特性在特定的时间内完成特定的任务,实时性与可靠性。2、什么是平衡二叉树?左右子树都是平衡二叉树,且左右子树的深度差值的绝对值不大于13、堆栈溢出一般是由什么原因造成的?没有回收垃圾资源4、什么函数不能声明为虚函数?constructor问题扩展:4.1什么是虚函数?a) 简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离;用

7、形象的语言来解释就是实现以共同的方法,但因个体差异而采用不同的策略。b) 虚函数用来表现基类和派生类的成员函数之间的一种关系.虚函数的定义在基类中进行,在需要定义为虚函数的成员函数的声明前冠以关键字virtual.基类中的某个成员函数被声明为虚函数后,此虚函数就可以在一个或多个派生类中被重新定义.在派生类中重新定义时,其函数原型,包括返回类型,函数名,参数个数,参数类型及参数的先后顺序,都必须与基类中的原型完全相同.虚函数是重载的一种表现形式,是一种动态的重载方式4.2为什么使用虚函数通过对象指针进行的普通成员函数调用,仅仅与指针的类型有关,而与此刻正指向什么对象

8、无关.要想

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。