作者chchwy (mat)
看板NTUE-CS100
标题Re: [课业] 程设重点提示
时间Tue Nov 20 01:33:18 2007
应要求 ch4就两个重点
1. operator的优先顺序
2. 型别转换
名词记一下
operator 运算子 ex. +-*/%
operand 运算元 ex. 1 3 4.56 x y z 等等
1.优先顺序
通常分成五个部份 由高往低
Lv1.小括号() 不管什麽鬼operator,加了括号就括号内先做
Lv2.一元运算子 ex.++ -- -(负号) !(not) 这种operator通常黏在某个变数旁边
像-5,!a 所以照着直觉走,先做就对了。
(注. 小心i++,++放後面是例外,Lv∞)
Lv3.加减乘除 这边记得先乘除後加减,%取余数算在乘除那一挂的。
>> << (shift顺序最低)
Lv4.逻辑运算 if(a>=0 && a<=9){ /*如果a在0~9之间就跑这里zzz...*/ }
顺着直觉...<>(大於小於先做) && (AND後做)
这里记得 <>先==後 &&先 ||後
Lv5.指定 x = a/b+5^&*%(一拖拉库计算)
用膝盖想也知道全部计算完才要存进x,所以优先最後。
包括所有有指定效果的+= -= %= 等等....。
(中间还有一个位元运算...这个...特殊用途,有兴趣的自己记XD)
2.型别运算
(1) c++运算的时候会看型别
float x=5/3; //虽然x是float,但右边是整数运算,小数点都舍去。
//答案x=1
(2) 两个变数型别不同->用精确度高的。
int a=5;
float b=3.3; //a+b会取float精确度,答案是8.3
但如果用精确度低的变数来接结果
int c=a+b //即使a+b结果是8.3,存进c之後小数点还是会被切掉。
(3) 想要提高精确度,就强制转型吧。
像(1)的例子 float x= (float)5/3 //这样5/3被强制转成float运算
//结果x=1.66667
看了一下,Ch4後面的习题还蛮机歪的,做完应该很ok了XD
--
-- P_Mat <无名个人版> bbs.wretch.cc
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.68.15.109
※ 编辑: chchwy 来自: 203.68.15.109 (11/20 01:48)
1F:推 shinemon:不愧是建中哥!! 感激~~~~~~~ 台艺有希望了 11/20 02:00
※ 编辑: chchwy 来自: 203.68.15.109 (11/20 02:36)
2F:→ WAYS22275:THK! 11/21 02:44