第1章 預處理、巨集定義
使用巨集的注意事項:
1.巨集表示式要加括號,包括變數括號,表示式括號,避免隱藏的錯誤。
如:#define max(a,b) ((a)>(b)?(a):(b))
2.巨集裡面不要帶返回語句,如 return;
3.使用巨集提高源程式的可維護性、工作效率等,但要使用得當。
第2章 資料型別、資料結構
1.搞清聯合體和結構體的區別,以及在記憶體空間上的占用情況。
2.搞清堆疊、佇列、順序儲存結構和邏輯儲存結構的概念和區別等。
3.陣列、指標、指標陣列、陣列指標的區別。
4.二維陣列的定義等。
第3章:變數、運算
1.多重迴圈中把迴圈次數多的放內層,迴圈次數少的放外層。
2.在for/while等迴圈中,注意迴圈條件的截止,避免死迴圈出現。
3.變數定義後要初始化,避免對未初始化的變數進行操作導致的錯誤。
4.全域性變數和區域性變數變數名不要一致,如果變數名一致在區域性函式中操作的是區域性變數。
5.在for/while等迴圈中,對陣列操作,注意閾值的取值,避免陣列越界的情況。
6. sizeof對字串的計算,如char ah = "\\\0w\0"; sizeof(ah)=5。
7. sizeof對結構體計算,如struct bbb*p;(假設struct bbb共24個位元組) p=0x100000; p+0x1=0x100018;(unsigned long)p + 0x1=0x100001;(unsigned long *)p+0x1=0x100004;(char *)p=0x100001;
8.區域性變數占用空間不能太大,否則堆疊空間將不足。
9.函式入參要注意檢查有效性,特別是指標。
10.scanf輸入除了字串外,其他變數注意都要取位址符&。
第4章:陣列、字串、指標、引用
1.函式傳入的形參如果是指標要記得做指標的有效性判斷。
2.注意記憶體洩露的情況,函式異常退出時務必記得打掃戰場。
3.字元陣列,注意區別:存入0,即結束符'\0';存入'0',是字元'0'。
4.搞清指針對陣列的操作,陣列的特殊之處:利用取位址符取位址永遠是首位址,無限迴圈。
第5章:位元組序、位元組對齊
1.大端模式(big-endian):字資料的高位元組儲存在低位址中,低位元組存放在高位址中;小端模式(littile-endian):字資料的低位元組儲存在低位址中,高位元組存放在高位址中。
2.網路位元組序預設是大字節序!intel的x86 cpu用的是小端位元組序,ibm 的 powerpc 用的是大端位元組序。
3.大端模式和小端模式,對低位的操作(修改、替換),百考不厭,細節很重要。
4.搞清結構體中元素的排列、多少位元組對齊對結構體占用空間的影響。
1位元組對齊:short、long不用符合偶位元組或4位元組對齊。
2位元組對齊:short要符合偶位元組對齊,long要符合4位元組對齊。
4位元組對齊:short要符合偶位元組對齊,long要符合4位元組對齊。
5.注意union和struct的字眼,計算占用空間大小時區別很大!
6.sizeof對union和struct的計算,都是按char位元組為單位計算!
7.注意指標陣列的占空空間計算,如下:
uchar *pucchararray[10][10];
sizeof(pucchararray) = 400
C語言練習
練習1 include stdlib.h include iostream.h include stdio.h void main cout 輸入檔案1的資料內容 以 結束 while ch stu n void input char a a用於接收要寫入資料的檔名 inti file fp if ...
c語言練習
經常練練,有易於身心健康,避免出沒遇到熊。1 請編寫函式fun,對長度為7個字元的字串,除首 尾字元外,將其餘5個字元按ascii碼降序排列。例如,若原來的字串為ceaedca,則排序後輸出為cedceaa。注意 部分源程式給出如下。請勿改動主函式main和其他函式中的任何內容,僅在函式fun的花括...
C語言練習
輸出7 和7 的倍數,還有包含7 的數字例如 17,27,37,70,71,72,73,2.需求分析 輸出7 和7 的倍數,還有包含7 的數字,從小到大排列的不大於n 的與7 有關的數字,每行乙個 1 輸入的形式和輸入值的範圍 輸入乙個整型資料,輸入值範圍n 30000 2 輸出的形式 每行輸出乙個...