一、程式設計規範
軟體程式設計規範作用
增強程式可讀性
增強**復用性
增強**維護性
軟體程式設計規範總則:
排版注釋
識別符號命名
二、函式引數順序點
函式呼叫過程中,變數值發生變化的位置(點),稱為函式引數「順序點」。
順序點一般位於:
(1)語句結束時值改變:
k=2;
k=k++ + k++;
(2)&& || , ?:等運算子
(3)函式引數傳遞時的求值順序
int k = 1;
func(k,k++);
例如: int i = 0;
① printf(「%d,%d,%d」,i++,i++,i++);
②printf(「%d,%d,%d,%d,%d」, ++i, ++i,i++,++i,i++);
linux下,從右往左計算。①順序輸出2,1,0 ②順序輸出5,5,2,5,0
三、帶引數的main函式和命令列引數
原理:當系統呼叫主函式時,系統也可將引數 (命令列) 傳給主函式。
格式:main(int argc, char *argv[ ])
可變引數列表
#include中定義了相關方法。
typedef struct
va_list;
控制函式:
void va_start(va_list ap,last);
type va_arg(va_list ap,type);
void va_end(va_list ap);
void va_copy(va_list dest,va_list src);
呼叫參數列以前,定義乙個va_list型別變數,對ap進行初始化,初始化完成後,ap指向可變參數列中的第乙個引數(由va_start函式實現),獲取引數,呼叫va_arg函式,第乙個引數是ap,第二個引數是要獲取的引數的指定型別,然後返回這個指定型別的值,並且把ap的位置指向列表的下乙個變數位置,獲取了所有的引數後,要關閉ap,呼叫va_end函式即可。
四、遞迴函式
在函式呼叫時,直接或間接地自己呼叫自己的函式稱為遞迴函式
遞迴呼叫過程可以分為如下的兩個階段:
第一階段稱為「遞推」階段:
將原有的問題分解為新的子問題,逐漸以未知的向已知的方向推測,最終達到已知的條件,即遞迴結束條件,這時遞迴階段結束;
第二階段稱為「回歸」階段:
該階段從已知的條件出發,按照「遞推」的逆過程,逐一求值返回,最後到達遞推的開始處,結束回歸階段,完成遞迴呼叫。
返回指標值的函式
格式:型別 *函式名(形參列表)
舉例 int *a(int x, int y)
*函式名兩側不能加括號,由於括號的優先順序比*高。首先 a 與其後引數結合,表明 a 是函式名,然後與*結合,表明是乙個指標形函式。
函式的指標
函式指標是函式的物理入口位址。即是在編譯時,分配的物理入口位址。
不帶括號和引數的函式名代表函式的入口位址。
對指向函式的指標變數,像p+n ,p++,p- -等運算是無意義的。函式指標不能指向函式中的某條指令。
C語言基本知識
c語言中提供了一組標準函式,用來解決常見問題 每個標準函式有自己的名字 為了使用這個標準函式需要把 stdio.h 檔案的內容合併到原始檔中 為了使用標準函式需要編寫函式呼叫語句 n 表示換行,可以把後面的內容列印在下一行中 可以採用佔位符列印編寫程式的時候還不知道的數字 d 佔位符和整數型別字配對...
C 基本知識
內聯函式 在c 98的標準下為63個關鍵字 1.普通的命名空間 namespace n1 n1為命名空間的名稱 2.命名空間可以巢狀 namespace n2 namespace n3 3.同乙個工程中允許存在多個相同名稱的命名空間,編譯器最後會合成同乙個命名空間中。1.加命名空間名稱及作用域限定符...
c 基本知識
1.類 包含某一物體的基本屬性的抽象。2.物件 具體指某乙個物體。實實在在存在的東西。3.建構函式 負責類建立物件的函式。如果類沒有宣告建構函式,c 編譯器會提供預設的無參的建構函式。這個函式只負責建立物件,不負責物件初始化工作。4.析構函式 負責釋放物件,記憶體的 5.變數訪問修飾符 public...