對C語言中argc和argv的理解

2021-08-03 16:16:36 字數 1573 閱讀 6607

argc和argv中的arg是指「引數」(英文:argument,argument counter 和argument vector)

至少兩個引數至主引數:argc和argv

argc是有乙個計算提供的引數到程式

argv是對字串陣列的指標

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的定義和用法

argc,argv 用命令列編譯程式時有用。主函式main中變數 int argc,char argv 的含義 我們平時定義主函式時通常的寫法為 int main 或void main 其實,int main 只是 unix 及 linux 默許的用法,main int argc,char argv...

c 語言中的 和

我們使用 把巨集引數變為乙個字串,用 把兩個巨集引數貼合在一起.當巨集引數是另乙個巨集的時候,需要注意的是凡巨集定義裡有用 或 的地方巨集引數是不會再展開。下面舉兩個例項 define print f,v printf the v is f v 加上 不會替換引數,只替換其所對應的字元 int ma...