表達式和基本語句
①if語句 (分支:單分支、雙分支、多分支)
if 語句是C 語言中最簡單、最常用的語句,然而很多程序員用隱含錯誤的方式寫if語句;
布爾變量與零值比較、整型變量與零值比較、浮點變量與零值比較、指針變量與零值比較
②while,for語句
C++/C 循環(huán)語句中,for 語句使用頻率最高,while語句其次,do語句很少用。
在多重循環(huán)中,如果有可能,應當將最長的循環(huán)放在最內(nèi)層,最短的循環(huán)放在最外層,以減少CPU跨切循環(huán)層的次數(shù);
如果循環(huán)體內(nèi)存在邏輯判斷,并且循環(huán)次數(shù)很大,宜將邏輯判斷移到循環(huán)體的外面;
③switch開關語句
switch語句可以產(chǎn)生具有多個分支的控制流程。
它的格式是:
switch(控制表達式)
{
case常量表達式:語句列表
case常量表達式:語句列表
...
default:語句列表
}
每個case語句的結(jié)尾不要忘了加break,否則將導致多個分支重疊(除非有意使多個分支重疊);
不要忘記最后那個default分支。即使程序真的不需要default處理,也應該保留語句 default : break;這樣做并非多此一舉,而是為了防止別人誤以為你忘了default處理。
④goto語句(流程轉(zhuǎn)向)
由于goto語句可以靈活跳轉(zhuǎn),如果不加限制,它的確會破壞結(jié)構(gòu)化設計風格。其次,goto語句經(jīng)常帶來錯誤或隱患。它可能跳過了某些對象的構(gòu)造、變量的初始化、重要的計算等語句.
位運算及其運算符
①按位與──& (1)格式:x&y (2)規(guī)則:對應位均為1時才為1
(3)主要用途:取(或保留)1個數(shù)的某(些)位,其余各位置0。
②按位或──| (1)格式:x|y (2)規(guī)則:對應位均為0時才為0,否則為1
(3)主要用途:將1個數(shù)的某(些)位置1,其余各位不變。
③按位異或──^
(1)格式:x^y
(2)規(guī)則:對應位相同時為0,不同時為1:3^9=10。
(3)主要用途:使1個數(shù)的某(些)位翻轉(zhuǎn)(即原來為1的位變?yōu)?,為0的變?yōu)?),其余各位不變。
④按位取反──~
(1)格式:~x
(2)規(guī)則:各位翻轉(zhuǎn),即原來為1的位變成0,原來為0的位變成1:在IBM-PC機中,~0=0xffff,~9=0xfff6。
(3)主要用途:間接地構(gòu)造一個數(shù),以增強程序的可移植性。
⑤按位左移──<<
(1)格式:x<<位數(shù)
(2)規(guī)則:使操作數(shù)的各位左移,低位補0,高位溢出:5<<2=20。
⑥按位右移──>>
(1)格式:x>>位數(shù)
(2)規(guī)則:使操作數(shù)的各位右移,移出的低位舍棄;高位:
1)對無符號數(shù)和有符號中的正數(shù),補0;
2)有符號數(shù)中的負數(shù),取決于所使用的系統(tǒng):補0的稱為“邏輯右移”,補1的稱為“算術右移”。例如,20 >> 2=5。
說明:
(1)x、y和“位數(shù)”等操作數(shù),都只能是整型或字符型數(shù)據(jù)。除按位取反為單目運算符外,其余均為雙目運算符。
(2)參與運算時,操作數(shù)x和y,都必須首先轉(zhuǎn)換成二進制形式,然后再執(zhí)行相應的按位運算。
(3)實現(xiàn)&、|、^運算主要用途的方法
1)構(gòu)造1個整數(shù):該數(shù)在要?。ɑ虮A簦┑奈?、或要置1的位、或要翻轉(zhuǎn)的位上為1,其余均為0。
2)進行按位與、或按位或、或按位異或操作。
(4)實現(xiàn)按位取反主要用途的方法
1)求~0,間接地構(gòu)造一個全1的數(shù);
2)按需要進行左移或右移操作,構(gòu)造出所需要的數(shù)。
復合賦值運算符
除按位取反運算外,其余5個位運算符均可與賦值運算符一起,構(gòu)成復合賦值運算符:&=、|+、^=、<<=、>>=
不同長度數(shù)據(jù)間的位運算──低字節(jié)對齊,短數(shù)的高字節(jié)按最高位補位:
(1)對無符號數(shù)和有符號中的正數(shù),補0;
(2)有符號數(shù)中的負數(shù),補1。
位段的概念與定義 所謂位段類型,是一種特殊的結(jié)構(gòu)類型,其所有成員均以二進制位為單位定義長度,并稱成員為位段。
說明
(1)因為位段類型是一種結(jié)構(gòu)類型,所以位段類型和位段變量的定義,以及對位段(即位段類型中的成員)的引用,均與結(jié)構(gòu)類型和結(jié)構(gòu)變量一樣。
(2)對位段賦值時,要注意取置范圍。一般地說,長度為n的位段,其取值范圍是:0~(2n-1)。
(3)使用長度為0的無名位段,可使其后續(xù)位段從下1個字節(jié)開始存儲。
新聞熱點
疑難解答