循环与关系表达式
for、while是入口条件循环,do while 是出口条件循环; 输入:cin » ch;忽略空格、换行符和制表符“\t”。cin.get(ch) 和 ch=cin.get()成员函数调用,返回下一个输入字符,包括空格、换行符和制表符“\t”。
循环
for循环
for(初始化表达式; 测试表达式; 更新表达式) {循环体}
副作用:判定表达式为“=”时,会带来副作用,即修改被赋值者的值,因为这种操作改变了内存中数据的值。
顺序点:语句中的分号是一个顺序点,程序处理下一条语句之前,赋值运算符、递增运算符和递减运算符执行的所有修改都必须完成。任何一个完整的表达式(不是其他表达式的子表达式)末尾都是一个顺序点。
eg1:
while (guessts++ < 10)
cout << guessts << endl; //测试条件是一个完整的表达式,末尾是一个顺序点,C++确保副作用 guessts 在进入cout之前完成+1.
eg2:
y = (4 + x++) + (6 + x++); //整个表达式末尾分号标示了顺序点,是一个完整表达式,C++只保执行到下条语句前x自增两次,不能保证在每次子表达式计算后将x值增加.
while 循环
while (判断表达式)
循环体
do while 循环
do
循环体
while(循环条件)
表达式
递增与递减运算符和指针
1、前缀递增、前缀递减(++X、–X)和 解除引用运算符(*X)的优先级相同,以从右到左的方式进行结合;
2、后缀递增、后缀递减(X++、X–)优先级相同,但比前缀运算符优先级高,以从左到右的方式进行结合。
eg:
*++pt; //将++应用于pt,然后 * 应用于被递增后的pt.
++*pt; //pt先解除指针引用,将pt指向地址中存储的值加1.
*pt++; //pt指针先递增,然后解除引用.
组合运算符
=+、-+、*=、/=、%=
复合语句
如果在一个语句块中声明一个变量,而外部语句块中也定义了一个这种名称的变量,在声明位置到内部语句块结束的范围内,新变量将隐藏旧变量,然后旧变量再次可见。
逗号运算符
1、合并表达式: 允许将两个表达式放到C++语法只允许放一个表达式的地方。如 ++j,++i
2、分开变量列表相邻的名称: 如 int x, y;
3、顺序点: 逗号运算符是一个顺序点。所有运算符中逗号运算符优先级最低。
eg1:
i = 20, j = 2 * i //逗号表达式的值是第二部分的值,40
eg2:
x = 17,240; //等价于 (x=17), 240 后面的值不起作用
eg3:
x = (17,240); //x的值为240,逗号右侧的表达式值
字符串比较
不能用关系运算符来比较字符串,但可以比较字符,字符本质上是整形。
比较string类字符串
可以将关系运算符用于string类


