1.有如下三种循环语句:
- for循环;
- whlie循环;
- do-while循环;
2.自增的前缀格式和后缀格式的区别:
a++表示:使用a当前的值计算表达式,然后在将a加1;
++a表示:先将a的值加1,然后使用新的值来计算表达式;
前缀和后缀的效率问题:
- 前缀:比如它加1,然后返回结果;
- 后缀:它先复制一个副本,将其加1,然后在将复制的样本返回;
3.副作用和顺序点:
- 副作用(side effect):指的是在计算表达式时对某些东西进行了修改。
- 顺序点(sequence point):是指程序执行过程中的一个点,在这里,在进入下一步之前,确保对所有的副作用点进行了评估;
4.关于c风格字符串的比较:
假设word是数组名,“mate”是字符串,我们考虑下面的语句:
word=="mate";
这个语句判断这两的地址是不是相等的,而不是判断word字符数组的字符是不是“mate”;
如果要判断我们可以借助如下函数:
strcmp()该函数接受两个字符串地址:
- 如果字符串相同则返回,则返回0;
- 如果第一个字符串小(按照字符表顺序),则返回负值;
- 如果第一个字符串大(按照字符表顺序),则返回正值;
5.关于类型别名:
c++有两种类型别名的处理方式
- #define C char;
- typedef int I;
区别如下:
如果声明一系列变量时:#define是不使用的;
#define f_point float*
f_point a,b;
预处理器将该声明转换成如下
float* a;
float b;
6.基于范围的for循环(C++11):
其中x表示number的第一个元素,不断循环,x依次 表示数组中的其他元素;
7.使用cin进行原始输入:
- 在读取字符时 cin()忽略空格和换行符;
- 发送给cin的输入被缓冲,这意味着只有在用户在按下回车键时,他输入的内容才会发送给程序;
使用cin.get(ch)代替,解决cin()忽略空格和换行符的问题;
8.检测文件尾:
Ctrl+Z enter,模拟文件尾;
在检测到EOF后,cin将两位(eofbit和failbit)都设置为1;
可以通过成员函数eof()函数和eofbit()分别来检测两位;