<1>可能遇到的一個問題:顯示執行的窗口在程序終止時,突然消失。
如果遇到這種情況,那麼可以使程序暫停,直到按下【Enter】鍵,要做到這一點,請在程序的末尾,恰好在return語句之前,添加下面一行:
getchar();
該行讀取一次按鍵,因此陳谷將暫停直到按下【Enter】鍵時。
有時,根據程序函數的需要,可能已經有一個等待的指令,這種情況下需要使用getchar()兩次:
getchar();
getchar();
<2>要從邏輯上刪除一段C代碼,更好的辦法是使用#if指令,只要像下面這樣使用:
#if 0
statements
#endif
在#if和#endif之間的程序段就可以有效地從程序中去除,即使這段代碼之間原先存在註釋也無妨。
<3>C中名字的選擇:
可供使用的字符有小寫字母、大寫字母、數字和下劃線(_),第一個字符必須是字母或者下劃線。
<4>常量
int const a;
const int a;
這兩條語句都是把a聲明爲一個整數。
怎樣讓它在一開始擁有一個值呢?
方法:<1>在聲明時對它進行初始化:int const a = 15;
<2>在函數中聲明爲const的形參在函數被調用時會得到實參的值。
int const *pi;
const int *pi;
是指向整型常量的指針,可以修改指針的值,但不能修改它所指向的值。
int * const pi;
聲明pi爲一個指向整型的常量指針,此時指針是常量,它的值無法修改,但可以修改它所指向的整型的值。
int const *const pi;
最後在pi這個例子裏,無論是指針本身還是它所指向的值都是常量,不允許修改。
<4>break和continue語句
break語句用於永久終止循環;continue語句用於永久終止當前的那次循環。
這兩條語句的任何一條如果出現於嵌套的循環內部,它只對最內層的循環起作用。
<5>算術操作符
C提供了所有常用的算術操作符:+ - * / %
除了%操作符,其餘幾個操作符都是既適用於浮點類型,又適用於整數類型。
%爲取模操作符,它接受兩個整型操作數,把左操作數除以右操作數,但它返回的值是餘數而不是商。
<6>移位操作符
在左移位中,值最左邊的幾位被丟棄,右邊多出來的幾個空位則由0補齊。
右移位操作存在一個左移位操作不曾面臨的問題:
從左邊移入新位時,可以選擇兩種方案,一種是邏輯移位,左邊移入的位用0填充,另一種是算術移位,左邊移入的位由原先該值的符號位決定,符號位位1則移入的位均爲1,符號位位0則移入的位均爲0,這樣能夠保證原數的正負形式不變。
左移位操作符位<<,右移位操作符爲>>。
<7>位操作符
位操作符對它們的各個位執行AND、OR和XOR(異或)等邏輯操作。
位操作符有:
&| ^
它們分別執行AND、OR和XOR操作。它們要求操作數爲整數類型,它們對操作數對應的位進行指定的操作,每次對應左右操作數的各一位進行操作。
位的操縱:
(a)把指定的位設置爲1
value = value | 1 << bit_number;
(b)把指定的位清0
value = value & ~(1 << bit_number);
(c)對指定的位進行測試
value & 1 << bit_number