C++ 基础知识复习(一)
数据类型,常量与变量部分:(发现有些点竟然这么多年第一次发现)
C++基本数据类型有哪些:
答:整型,浮点型,void型。
注:其他各种数据类型均是这三种类型的扩充,另外void类型在实际程序中经常用来表示指针无类型,指向整块内存,程序可以自行根据需要进行解析。
2. 整型的分类及区别:
答:表示整数,字符,布尔值的数据类型统称整形。根据长短修饰词和符号修饰词不同可分为13类。长短修饰符:short 半个机器字长,int 一个机器字长,long 两个机器字长。符号修饰符: signed 带符号的,unsigned 无符号的,区别在表示范围上。char, unsigned char, signed char, int, unsigned int, signed int, short int, unsigned short int, signed short int, long int, unsigned long int, signed long int, bool.
注:具体记每种数据类型占几个字节意义不大,因为这是由平台决定的,记机器字长是个明智选择。
3. 简单介绍一下C++中的常量:
答:constant常量是用来标示,测量和比较的在程序运行前确定,运行过程中不会改变的值。可分为:
整形常量:注意整形常量可以指定进制,常量前如有0x,则为十六进制,如有0则为八进制。同时可以有后缀符号,不区分大小写,L代表长整形,U代表无符号。
浮点型常量:注意浮点型只有十进制,默认为double,绝对值小于1时小数点前的0可以省略,float表示范围在+-e38,double在+-e308,后缀同样不区分大小写,F代表有符号,L代表长双精度。
字符型常量:可用ASCII表示一个字符,也可用单引号加反斜杠表示转义字符,如'\x2f'表示十六进制的2f。
字符串常量:用双引号括起来的字符。
转义字符常量:\n换行 \r回车 \0空格
地址常量
注:比如QREP的版本信息,不同版本的版本号就是写死的。
4. 常量与变量的区别:
答:常量在定义时必须初始化,且值不可改变,常量不可寻址,它的地址不允许赋给非常量指针,变量可以寻址。常量编译执行效率较高。
5. 操作符有哪些:
答: 操作符又称运算符,按操作数分为一元运算符,二元运算符和三元操作符。 按功能不同,分为算术操作符,关系操作符,逻辑操作符,位操作符,赋值操作符,自增减操作符,箭头操作符,条件操作符,sizeof操作符,逗号操作符。
注:逗号表达式的值为最后一个表达式的值和类型。但在求值时,按从左到右的顺序分别计算个表达式的值。
6. 操作符的优先级:
答: 共16个等级,总体而言,单目高于多目,算术高于逻辑。三个从右至左结合的,单目运算符,条件运算符和赋值运算符。
7. 指针的自增减操作有何不同:
答: 指针的自增减,指的是指向的地址的增减。比如char *p=&str[0]; ++p 是将指针指向str[1], ++*p是将str[0]中的数据加1,比如说原来为c,加完变成d。
8. 变量有哪几种初始化方式?
答: 两种,赋值初始化和直接初始化。直接初始化效率更高。
9. 声明和定义的区别?
答: 声明主要表明名称和类型,定义具体分配了空间。函数的声明和实现比较常见,变量的声明多见于重复定义或者全局变量。
10. C++中的作用域?
答: 作用域分为全局作用域,局部作用域和语句作用域。作用域是可以嵌套的,
11. 变量的存储类型有哪些?
答: 变量的存储类型决定了其生命周期,存储类型的说明符有4个, auto,register,static和extern。
auto和register称为自动存储类型,auto是默认的,生命周期始于块的执行,结束于块的结束。在栈中,执行结束自动释放,生命期和作用域一致。寄存器变量不建议使用,因为编译器大多会进行优化。
static静态存储类型,存储于全局数据区,如未显示初始化,系统会自动赋值0,且初始化只进行一次,具有全局生命周期,根据定义位置不同,分为局部静态变量和全局静态变量,也称内部静态变量和外部静态变量。
extern外部存储变量,程序中的全局变量和函数默认是外部的,其他程序可以通过extern声明来使用它们。
12. 程序的存储区域有哪些,各自特点如何?
答: 程序的存储区域包括代码区,静态数据区,栈区和堆区,相应的生命周期分为静态生命期,局部生命期和动态生命期。
静态数据区的数据具有静态生命期,全局变量,静态全局变量和静态局部变量都存在于静态数据区。系统会自动为其初始化,函数驻留在代码区,同样具有静态生命期。
栈区的数据具有局部生命期,如果未初始化,数值是随机的,有一点要注意,静态局部变量,具有局部作用域,但具有静态生命周期。
堆具有动态生命期,主要通过new和delete来处理内存,同时也说法认为单提出来有一个自由存储区,由malloc和free操作。
注:这部分涉及内存,贴个地址:http://wenku.baidu.com/view/1ecb5321482fb4daa58d4b91.html
13. 什么是引用?
答: 引用是对象的另一个名字,通过&符号来定义,如int i=0; int &ref=i; 用引用有两个目的:第一是为了提高性能,使用引用不会造成对象的拷贝,这里的"自定义类 &"就是这个目的,但是如果不想函数修改这个参数,最好在前面加上const。第二是为了能够修改对象。这里的"istream &"就是这个目的,作为参数,如果不传入引用,那么这个stream就是形参,函数里修改这个参数不会造成函数外变量的改变,显然是不行的。但是要注意const引用的原对象也要是const的。
语法部分:
14. while,do while:容易忘记,do while后面要有个分号。
15. 在switch语句中,只能在最后一个case或者default后定义变量。
16. 递归分为边界条件,递归前进段和递归返回段三部分。当边界条件不满足时递归前进,满足时递归返回。
17. 汉诺塔问题:可以用递归和非递归的方式解决,注意三根柱子并没有使用顺序的限制,非递归可以用栈来模拟解决过程,关键就是把大于1的盘子数量分解为1的解决步骤。
输入输出部分:
18. 注意C++本身并不提供输入输出操作,是由标准库提供的。
19. 几种IO的分类:
标准I/O:对标准输入输出设备的操作
文件I/O:对外存磁盘上文件的输入输出
串I/O:对内存中字符串存储空间的输入输出
20. 各种I/O类:基类 ios
直接派生出的四个大类:输入流istream,输出流ostream,文件流fstreambase和字符串流strstreambase。
输入文件流类ifstream,输出文件流类ofstream
输入字符串流类istrstream,输出字符串流类ostrstream
功能更集中的:输入输出流类iostream,输入输出文件流类fstream,输入输出字符串流类strstream。
iostream标准类库,用这个就足够了。
21. 重载输入输出的目的和方法:
答:重载在相同的范围内为同一个函数名提供多个定义,委托编译器调用时进行选择,提供更为简洁的代码。
ostream& operator<< (ostream &out, const classname &object){ out<<...;return out;}
输入流将ostream换为istream即可。
22. 如何读取一个文件:
答:#include <fstream> fstream openfile(filepath); openfile.eof(); openfile.fail(); openfile.close(); 使用cin,get或者getline读取字符。写入的时候可以用ofstream,.open, .close. .clear. <<操作符可以用来写。
C++ 基础知识复习(一)的更多相关文章
- spring 基础知识复习
spring是一个分层架构,由 7 个定义良好的模块组成.Spring 模块构建在核心容器之上,核心容器定义了创建.配置和管理 bean 的方式. 组成spring框架的每个模块(或组件)都可单独存在 ...
- JavaScript进阶【三】JavaScript面向对象的基础知识复习
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ZYNQ笔记(0):C语言基础知识复习
ZYNQ的SDK是用C语言进行开发的,C语言可以说是当今理工类大学生的必备技能.我本科学C语言时就是对付考试而已,导致现在学ZYNQ是一脸懵逼.现在特开一帖,整理一下C语言的基础知识. 一.定义 1. ...
- MySQL数据库基础知识复习
现在是2020年寒假,这也是新年写的第一篇博客,用了十几天的时间自学了数据库基础部分,想总结一下得失同时并通过写博客来复习前面学的知识点. 个人: 1.本来是计划一周学完基础部分的178p但没能完成这 ...
- android基础知识复习——RelativeLayout布局属性、背景、半透明设置(XML设置)
转自:http://blog.csdn.net/fansongy/article/details/6817968 复习布局与XML,写了一个空的登录界面.XML的注释我写在当行的后面了.程序运行图: ...
- JAVA基础知识复习小结
集合 Set集合 Set集合的基本特征是元素不允许重复.HashSet不保存元素顺序,LinkedHashSet用链表保持元素的插入顺序,TreeSet可定制排序规则. HashSet的底层是用Has ...
- C++ 基础知识复习(六)
操作系统部分: 79. 操作系统的最小调度单位:线程. 线程thread,进程process.一个进程至少包含一个线程,主线程,main thread. 80. 资源的最小单位是:进程. 81. 进程 ...
- C++ 基础知识复习(五)
UML建模部分 70. 什么是UML: 答: Unified Modeling Language, 统一建模语言,是一种标准的图形化建模语言.是面向对象分析和设计的标准表示. 71. UML有哪些图: ...
- C++ 基础知识复习(三)
43. 继承的几种方式: 答:共有继承public,保护继承protected,私有继承private.其中后两种继承会改变原有的访问级别. 44. 深复制与浅复制: 答:简单理解,深复制自己申请了内 ...
- C++ 基础知识复习(二)
异常处理部分: 23. 在c++的异常处理中,除了提供异常的关键字语法支持以外,其标准库中支持异常处理而封装异常类也很好的为应用程序中异常处理判断使用提供直接的帮助.C++语言中针对异常处理提供了三个 ...
随机推荐
- Android BLE 蓝牙编程(四)
接上篇,我们已经实现了短震,长震的功能了- 现在我们需要实现点击后一直震动的功能 开始我的想法是再循环中不断执行write方法,然而这个办法行不通. 系统会报错. 那要如何实现这个想法呢?其实很简单, ...
- Ubuntu 安裝 嘸蝦米 輸入法
O S : 14.04.1-Ubuntu 加入fcitx開發團隊的repository: sudo add-apt-repository ppa:fcitx-team/nightly sudo apt ...
- 10 行 Python 代码写的模糊查询
导语: 模糊匹配可以算是现代编辑器(在选择要打开的文件时)的一个必备特性了,它所做的就是根据用户输入的部分内容,猜测用户想要的文件名,并提供一个推荐列表供用户选择. 样例如下: Vim (Ctrl-P ...
- SSH整合报错:No result defined for action and result input
目前发现这个问题主要是在Action中的execute返回值时,没有对应的result name而引起的.很有可能是由于程序执行中出错了,但是对 应的Action中没有添加 input的result ...
- [bigdata] 启动CM出现 “JDBC Driver class not found: com.mysql.jdbc.Driver” 以及“Error creating bean with name 'serverLogFetcherImpl'”问题的解决方法
问题:“JDBC Driver class not found: com.mysql.jdbc.Driver” 通过以下命令启动cm [root@hadoop1 ~]# /etc/init.d/cl ...
- Java 对象 及 对象的应用
http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=30149799&id=4942380原文地址
- foreach statement cannot operate on variables of type 'System.Web.UI.WebControls.Table' because 'System.Web.UI.WebControls.Table' does not contain a public definition for 'GetEnumerator'
错误:foreach statement cannot operate on variables of type 'System.Web.UI.WebControls.Table' because ' ...
- C++变参数模板和...操作符
https://en.wikipedia.org/wiki/Variadic_template https://msdn.microsoft.com/en-us/library/dn439779.as ...
- 使用Xcode HeaderDoc和Doxygen文档化你的Objective-C和Swift代码
在一个应用的整个开发过程中涉及到了无数的步骤.其中一些是应用的说明,图片的创作,应用的实现,和实现过后的测试阶段.写代码可能组成了这个过程的绝大部分,因为正是它给了应用生命,但是这样还不够,与它同等重 ...
- [UML]UML系列——用例图Use Case
用例图的概念 用例图是描述用例.参与者以及它们之间关系的图. 用例图的作用 用例图是从用户的角度来描述对信息系统的需求,分析产品的功能和行为. 用例图定义和描述了系统的外部可见行为,是分析.设计直至组 ...