DAY01

<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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章