懒得打太多格式了,直接写吧
第四章 数组与指针有不明白的地方已经在论坛上问过了, 明天去书店翻一下<C专家编程>.
什么不懂的全要弄明白.像坦克一样对知识进行无情的碾压吧!!
现在开始复习第五章
1.求余操作符不支持浮点数,下面是错误的举例:
int ival=42;
double dval=3.14;
ival%dval;
2.当使用/或%时,两操作数尽量同号,以下操作依靠机器:
21/-5; //-4or-5
21%-5; //1or-4
o(∩∩)o...嘿嘿,说实话我自己算都有可能得出两个结果...
这个知识点应该在习题5.3中用得到,如果你实现的方法和我一样的话.
3.操作符分为三类:算数操作符(加减乘除之类跟运算有关的),关系操作符(互相比较得出bool值的),逻辑操作符(就是"或,与",也返回bool值)
还有,逻辑与 逻辑或 是 && || 是两个的.
好像还有& 和 | 不要弄混了
4.短路求值(难道C++也偷懒?)
expr1 && expr2
expr1 || expr2
在"与"操作符中,若expr1是false,那么大家想想,不管expr2是神马,都无力回天,整个表达式就是false.那么expr1如果是false,expr2就不用求了.
在"或"操作符中,若expr1是true,那么expr2是true还是false也都无关紧要了,也就不会求expr2了.
太巧妙了!!
5.最好不要串联使用关系操作符
例如:if(i<j<k);i<j返回的有两个值:0(false),1(true).那么k大于谁...可想而知.肯定不符合程序员的原意了..
6.突然发现P133页习题5.6有问题.char *cp="Hello World";在C++中是不成立的..
7.因为没学过二进制(这暑假肯定学不了了),跳过位操作符.现在付出再多的努力也是白搭的.
8.赋值操作符有右结合性
ival=jval=0; 先是jval=0,再是ival=jval;
还有
赋值操作符优先级很低!!
while((i=get_value()!=42)
不要把 == 和 = 弄混
9.复合赋值操作符
+= -= *= /= %= <<= >>= &= ^= |=