argc和argv的定義和用法

2021-07-22 05:08:45 字數 1379 閱讀 2645

**

argc,argv 用命令列編譯程式時有用。 

主函式main中變數(int argc,char *argv[ ])的含義 

我們平時定義主函式時通常的寫法為:int main( )或void main( ) 

其實,int main( ) 只是 unix 及 linux 默許的用法, 

main(int argc, char *argv[ ], char *env[ ])才是unix和linux中的標準寫法。 

argc: 整數,用來統計你執行程式時送給main函式的命令列引數的個數 

* argv: 字串陣列,用來存放指向你的字串引數的指標陣列,每乙個元素指向乙個引數 

argv[0] 指向程式執行的全路徑名 

argv[1] 指向在dos命令列中執行程式名後的第乙個字串 

argv[2] 指向執行程式名後的第二個字串   ...   argv[argc]為null。 

*env:字串陣列。

env[ ]的每乙個元素都包含envvar=value形式的字串。其中envvar為環境變數,value 為envvar的對應值。 

argc, argv,env是在main( )函式之前被賦值的,編譯器生成的可執行檔案,main( )不是真正的入口點,而是乙個標準的函式,這個函式名與具體的作業系統有關。 

經典小例子,對於理解argv[ ]函式很管用: 

#include  

int main(int argc, char *argv[ ]) 

假設將其編譯為test.exe 

在命令列下 

〉test hello 

得到的輸出結果為 

2 hello 

test 

main(int argc, char*argv[ ]),其中argc是指變數的個數,本例中即指test和hello(注意,命令test也算在內)這兩個變數,argc即為2   argv是乙個char *的陣列,其中存放指向引數變數的指標,此處argv[0]指向test,argv[1]指向hello 

再例: 

#include 

#include 

int main(int argc,char *argv[ ]) 

if(argc==2)  

exit(0) 

} 編譯該程式:gcc -o edit edit.c 

執行:〉edit 

結果:請輸入想要編輯的檔名如:fillname 

執行:〉edit f1.txt 

結果:編輯 f1.txt 

執行edit時,argc為1,argv[0]指向edit 

而執行edit f1.txt時,argc的值為2,argv[0]指向edit,argv[1]指向f1.txt

argc和argv的用法

main int argc,char argv argv為指標的指標 argc為整數 char argv or char argv or char argv main 括號內是固定的寫法。下面給出乙個例子來理解這兩個引數的用法 假設程式的名稱為prog,當只輸入prog,則由作業系統傳來的引數為 a...

argc和 argv 函式簡記

如下 int main int argc,char argv 第乙個int argc 是記錄輸入在命令列的字串個數,char argv是指標陣列,存放輸入在命令列中的命令即字串。例 命令列輸入 one two three則 argc 0 中存放one,argc 1 中存放two,argc 2 中存放...

Opencv中argc和argv引數

程式中加入system pause 語句暫停黑視窗時,不要加於return0之後 另外就是若加該語句,vs提示找不到識別符號時,可加入 include 語句,達到消除錯誤的目的。main int argc,char argv 中argc統計程式執行時傳送給main函式的命令列引數的個數 命令列輸入引...