《程式編譯流程與 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**
形參,以下幾個概念竟然讓人混淆:
當 student_num 為 1 或不填寫時,int aarray[5]
=;// 陣列變數。
char greeting=
"hello"
;// 字串變數,本質是乙個以 null 字元結尾的字元陣列。
char
*ch;
// 字元指標變數,指向字元的指標。
char
*stuname_temp[student_num]
;// 指標陣列變數,每個元素都指向字元(或字串)的指標的陣列。
char
**ch;
// 指標指標變數,指向字元指標的指標。
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...