1.類型轉(zhuǎn)化:
(1)隱式轉(zhuǎn)化:整數(shù)除以整數(shù)為整數(shù);小數(shù)除整數(shù)為小數(shù)
當(dāng)賦值號兩邊類型不同時,自動轉(zhuǎn)化為精度較高的類型。
(2)顯式轉(zhuǎn)化:強制類型轉(zhuǎn)化:并不改變變量的類型,只做臨時轉(zhuǎn)化
float_f = (float)int_t/int_t1
2.位運算符
(1)二進制數(shù):由0和1組成
2^0+2^1+2^2+2^3+2^4+....
0101010 0101110 00101010
(2)八進制數(shù):由0~7組成的,八進制數(shù)開頭是數(shù)字0,以區(qū)分八進制數(shù)
0212 0322 0209
(3)十六進制數(shù):由數(shù)字0~9和字母a~f或者A~F組成并且以0x或0X開頭
0x213 0x23a 0Xab21
(4)二進制 十進制 八進制 十六進制
0000 0 0 0
0001 1 1 1
0010 2 2 2
0011 3 3 3
0100 4 4 4
0101 5 5 5
0110 6 6 6
0111 7 7 7
1000 8 10 8
1001 9 11 9
1010 10 12 a/A
1011 11 13 b/B
1100 12 14 c/C
1101 13 15 d/D
1110 14 16 e/E
1111 15 17 f/F
(5)位操作
&:位與 4&3 = 0(0000)
12&7 = 4(0100)
轉(zhuǎn)化為對應(yīng)二進制數(shù)運算對應(yīng)位同時為1,才為1
|:位或 4|3 = 7(0111)
轉(zhuǎn)化為對應(yīng)二進制數(shù)運算,按位相或,即有1取1
~:非(取反) ~23 = -24 (~取負數(shù)減1)
計算機是補碼存儲,原碼輸出!??!
原碼:正數(shù)的原碼是其本身
反碼:符號位不變,其它位按位取反
補碼:負數(shù)的補碼是其正數(shù)的原碼取反加1
0001 0111
補碼: 1110 1000
反碼: 1110 0111
原碼: 1001 1000
^:異或: 4^7 = 3
對應(yīng)位不同為1,相同為0;
<<:左移
8<<2 = 32
轉(zhuǎn)化為二進制,然后左移2位,低位補0
左移幾位,則乘以2的幾次方
>>:右移
8>>2 = 2
轉(zhuǎn)化為二進制,然后右移2位,高位補0
3.賦值操作符
賦值號:=
+= -= *= /= %=
&= |= >>= <<=
4.邏輯運算符和條件運算符
(1)邏輯運算符
&&:邏輯與
表達式1 && 表達式2
當(dāng)表達式1和2同時為真時,結(jié)果為真,否則為假
注意:當(dāng)表達式1為假時,表達式2無需計算,結(jié)果為假
||:邏輯或
表達式1 || 表達式2
表達式1和2只要有一個為真,結(jié)果就為真
注意:當(dāng)表達式1為真時,表達式2無需計算,結(jié)果為真
!:非
若表達式為真,則結(jié)果為假
若表達式為假,則結(jié)果為真
(2)條件運算符
?:
表達式1 ? 表達式2:表達式3
若表達式1為真,則執(zhí)行表達式2,否則執(zhí)行表達式3
a>b?a:b
5.運算符優(yōu)先級
括號成員第一,全體單目第二,乘除余三,加減四;
位移五,關(guān)系六,等于不等排第七;
位于,異或和位或八九十,邏輯或和與十二與十一;
條件高于賦值,逗號運算最低。
6.C語言的三大結(jié)構(gòu)
順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
1.分支結(jié)構(gòu)
(1) if(表達式){,,,,}
表達式為真,則執(zhí)行在{}里的語句,否則不執(zhí)行
(2)if(){}
else{}
(3)if
else if
else if
...
else
(4)if的嵌套使用
(5)使用if注意事項
80<num<90 //錯誤
if條件句后面只有一條語句時,可以不加{};
但此語句不能是變量定義語句。
在if的{}里定義的變量,只能在{}中使用,在{}外無效?。?!
2.switch....case:
(1) switch(option)
case option:
break;
....
default:
根據(jù)option的值執(zhí)行case語句,若沒有與之對應(yīng)的值
則執(zhí)行default語句
(2)注意事項:
default語句可以放在switch{}里的任意位置:
case語句后的{},可以省略不寫,
當(dāng)case后的執(zhí)行語句超過3條,則建議加{}!??!
(3)case語句中的break視情況而定是否寫:
若case語句中無break,則順次執(zhí)行所有的case語句
知道把所以case語句全部執(zhí)行完,退出switch語句和;
3.循環(huán)結(jié)構(gòu)
while() do{}while() for(;;)
(1)while(表達式)
{
//執(zhí)行語句
}
先判斷條件是否滿足執(zhí)行條件,滿足則執(zhí)行循環(huán)體,
不滿足則退出循環(huán),循環(huán)結(jié)束之后再判斷。。。
(2)break/continue
break:
跳出循環(huán)!
continue:
跳過這次循環(huán)執(zhí)行下一次循環(huán)!
(3)do{}while();
do
{
//循環(huán)體
}while(表達式);
先執(zhí)行后判斷!
(4)for(;;)
for(表達式1;表達式2;表達式3)
{
//循環(huán)體;
}
表達式1:循環(huán)條件初始化
表達式2:循環(huán)結(jié)束條件或者循環(huán)執(zhí)行條件
表達式3:循環(huán)步長或者變量值的更新
注:表達式1,2,3可以任意省略或全部省略
但是“;;“不可省略!
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。