第五章--循环和关系表达式

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++有两种类型别名的处理方式

  1. #define C char;
  2. 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进行原始输入:

  1. 在读取字符时 cin()忽略空格和换行符;
  2. 发送给cin的输入被缓冲,这意味着只有在用户在按下回车键时,他输入的内容才会发送给程序;

使用cin.get(ch)代替,解决cin()忽略空格和换行符的问题;


8.检测文件尾:

Ctrl+Z enter,模拟文件尾;

在检测到EOF后,cin将两位(eofbit和failbit)都设置为1;

可以通过成员函数eof()函数和eofbit()分别来检测两位;








猜你喜欢

转载自blog.csdn.net/lily559/article/details/80337501