一.
算术运算符都低于纯算术类运算符c;高于赋值类运算符c;并且它们结合方式都是从左到右的。例如:int x = 2, y = 3, z; z=3-1>=x+1<=y+2;
这个表达式包括赋值、关系、算术三种运算。其中赋值运算的优先级最低c;其次为关系运算c;算术运算的优先级最高。因此c;先进行算术运算c;得:z=2>=3<=5c;然后计算2>=3,为0(假)c;得z=0<=5c;再计算0<=5c;其值为1(真)c;所以z的值为1.
二.
字符数据的比较按照ASCII码值进行。忧郁字符数据按ASCII码进行存储c;故可作为正数参加运算和比较。例如,'a'>0的值为1(真)c;'a'>100的值为0(假)。
三.
在判断两个浮点数是否相等时c;忧郁存储上所产生的误差c;会得出错误的结果。例如
1.0/3.0*3.0 == 1.0在数学上是一个恒等式c;但是由于1.0/3.0所得值的有效位数有限c;并不等于0.3333...c;因此上面关系表达式的值为0(假)c;所以应该避免对两个实数表达式做“相等”或“不相等”的判别。上式可以改成:fabs(1.0/3.0*3.0-1.0)<1e-5c;fabs是求绝对值函数。只要两个实数之间的差小于10-5次方c;就可以认为两个实数相等了。
四.
由于编译器一般具有优化功能c;当&&左边为0c;||左边为1c;则停止计算c;返回对应的结果。(智能的很~ ~)。
五.
关于swich的应用c;可以参考一个例子:http://blog.csdn.net/niushuai666/article/details/7287641
使用switch结构需要注意以下几点:
1.一个switch结构的执行部分是由一些case子结构和一个可缺省的default子结构所组成的复合语句c;它们位于一堆花括号之内。
2.Switch的判断表达式只能对正数求值c;可以使用字符或整数c;但不能使用浮点表达式。Case子结构的表达式应该是整型常数表达式c;不能含有变量与函数。例如可以是case 3+4:或者case 'a': 但是不允许是case x+y:
3.一个switch结构中不能出现两个具有相同值的常数表达式。
4.Switch中的匹配测试只能测试是否成功c;不能测试关系表达式或逻辑表达式。
5.C89要求C编译系统应当实现:一个switch结构至少可以包含257个case子结构c;而C99则要求至少支持1023个case子结构。
6.Switch结构可以允许嵌套使用。
六.
牛顿迭代法
x = x - f(x) / f'(x)
资料可以从这里获得:
http://www.matrix67.com/blog/archives/361
http://www.matrix67.com/blog/archives/362
七.
优先决
括号成员第一; //括号运算符[]() 成员运算符. ->
全体单目第二; //所有的单目运算符比如++ -- +(正) -(负) 指针运算*&
乘除余三,加减四; //这个"余"是指取余运算即%
移位五c;关系六; //移位运算符:<< >> c;关系:> < >= <= 等
等于(与)不等排第七; //即== !=
位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|)
"三分天下"八九十;
逻辑或跟与; //逻辑运算符:|| 和 &&
十二和十一; //注意顺序:优先级(||) 底于 优先级(&&)
条件高于赋值, //三目运算符优先级排到 13 位只比赋值运算符和","高//需要注意的是赋值运算符很多!
逗号运算级最低! //逗号运算符优先级最低
由于Cclass="tags" href="/tags/YuYan.html" title=语言>语言的运算符优先级与C++的不完全一样(主要是增加了几个运算符)c;所以这个口诀不能完全实用于C++.但是应该能够兼容c;大家可以比较一下他们的区别应该就能够很快掌握C++的优先级的!
c="http://hi.csdn.net/attachment/201202/27/0_1330311815wOQb.gif" alt="" />
c="http://hi.csdn.net/attachment/201202/27/0_13303118292wWR.gif" alt="" />
c="http://hi.csdn.net/attachment/201202/27/0_13303118433tU0.gif" alt="" />