C 語言程式設計 指令行引數

2021-10-04 19:34:57 字數 2039 閱讀 4721

《程式編譯流程與 gcc 編譯器》

《c 語言程式設計 — 基本語法》

《c 語言程式設計 — 基本資料型別》

《c 語言程式設計 — 變數與常量》

《c 語言程式設計 — 運算子》

《c 語言程式設計 — 邏輯控制語句》

《c 語言程式設計 — 函式》

《c 語言程式設計 — 高階資料型別 — 指標》

《c 語言程式設計 — 高階資料型別 — 陣列》

《c 語言程式設計 — 高階資料型別 — 字串》

《c 語言程式設計 — 高階資料型別 — 列舉》

《c 語言程式設計 — 高階資料型別 — 結構體與位域》

《c 語言程式設計 — 高階資料型別 — 共用體》

《c 語言程式設計 — 高階資料型別 — void 型別》

《c 語言程式設計 — 資料型別的別名》

《c 語言程式設計 — 資料型別轉換》

《c 語言程式設計 — 巨集定義與預處理器指令》

《c 語言程式設計 — 異常處理》

《c 語言程式設計 — 標頭檔案》

《c 語言程式設計 — 輸入/輸出與檔案操作》

《c 語言程式設計 — 堆疊與記憶體管理》

c 語言支援在執行程式時,從命令列傳入引數值給程式,這些值被稱為命令列引數。當希望從外部控制程式,而不是在**內對這些值進行硬編碼時,非常常見的一種手段。命令列引數是使用 main() 函式引數來處理的:

#include

intmain

(int argc,

char

*ar**)

else

if(argc >2)

else

}

執行:

$ ./main fanguiju

program name ./main

the argument supplied is fanguiju

其中,ar**[0]儲存的是程式的名稱,ar**[1]才是指向第乙個命令列引數的指標,*ar**[n]則是最後乙個引數。如果沒有提供任何引數,argc將為 1,否則,如果傳遞了乙個引數,argc將被設定為 2。

多個命令列引數之間用空格分隔,但是如果引數本身帶有空格,那麼傳遞引數的時候應把引數放置在雙引號 「」 或單引號 『』 內部。

需要注意的是,也可以使用char **ar**代替char *ar**形參,以下幾個概念竟然讓人混淆:

int aarray[5]

=;// 陣列變數。

char greeting=

"hello"

;// 字串變數,本質是乙個以 null 字元結尾的字元陣列。

char

*ch;

// 字元指標變數,指向字元的指標。

char

*stuname_temp[student_num]

;// 指標陣列變數,每個元素都指向字元(或字串)的指標的陣列。

char

**ch;

// 指標指標變數,指向字元指標的指標。

當 student_num 為 1 或不填寫時,char *stuname_temp[student_num]char **ch的變數名本質是一致的。我們在陣列章節提到過,陣列變數名就是指向陣列第乙個元素的指標,如果這個元素的值是乙個指標,那麼陣列變數名的本質就是乙個指標指標。

#include

intmain()

;printf

("a: %lu\n"

,sizeof

(a))

;printf

("b: %lu\n"

,sizeof

(b))

;return0;

}

執行:

$ ./main

a: 8

b: 8

C語言程式設計技巧之命令列引數

在許多應用軟體執行時都帶有命令列引數,其實這些命令列引數在c語言編寫的程式中也可以實現,靈活地運用命令列引數進行處理可以有效地提高程式的執行效率,收到事半功倍的效果。c語言中有關命令列引數涉及到程式的主函式main int argc,char argv這樣兩個引數,其中,int argc表示命令行引...

C語言命令列引數

之前曾經使用過很多次c語言的命令列引數了,但是總是每次使用的時候都不太確定,需要重新查資料,這次來個總結。c語言的命令列引數非常簡單,只需要乙個簡單的例子就可以說明 cpp view plain copy include void main intargc,char argv 在上面的例子中,我們給...

C語言 命令列引數

可以通過main函式帶上兩個引數來獲取命令列的引數。argc 命令列引數的個數。argv 由命令列引數組成的字串陣列。include int main int argc,char argv return 0 編譯後執行結果 gcc test.c o test test a b c argv 0 te...