鏈結2
最近學習伺服器網路程式設計,遇到了乙個問題,main函式的引數,特意整理資料記錄之!!!
下面是乙個帶引數的main函式!
#include
int main(int argc,char *argv)
return0;}/*
int argc, char **argv 用於執行時,把命令列引數傳入主程式。
argc -- 命令列引數總個數,包括 可執行程式名。
argv[i] -- 第 i 個引數。
argv[0] -- 可執行程式名。
*/
關於帶引數的main函式網路收集:
int main(int argc,char **argv)
這裡面的**argv含義··
是用來傳遞引數的,假如你編譯成的檔名是a.exe,那麼在命令提示符下可以通過a.exe12 34來向程式傳遞引數,這時兩個引數就會傳遞到字串陣列argv中,注意此時實際傳遞了三個引數,第乙個引數是檔名,第二個引數是12,第三個是34,而argc就是引數個數。
int argc, char **argv 用於執行時,把命令列引數傳入主程式。
argc -- 命令列引數 總個數,包括 可執行程式名。
argv[i] -- 第 i 個引數。
argv[0] -- 可執行程式名。
// 例如執行:
abc.exe
argc 等於 1, argv[0] 是 "abc.exe"
// 例如執行:
rec.exe 4 5.2
argc 等於 3, argv[0] 是 "rec.exe", argv[1] 是 "4", argv[2] 是 "5.2".
主函式裡若有:
int x;
float y;
char s[80];
strcpy(s,argv[0]); // 程式名存入 了 s
sscanf(argv[1],"%d",&x); // x 得到數值4
sscanf(argv[2],"%f",&y); // y 得到數值 5.2
蒐集了一下c和c++中常見的幾種形式:
(1) main()
(2) int main()
(3) int main(void)
(4) int main(int, char**)
(5) int main(int, char*)
(6) int main(int argc, char **argv)
(7) int main(int argc, char *argv)
(8) int main( int argc, char *argv, char*envp)
(9) void main(void)
(1)是(3)的簡寫。不推薦使用。
(2)是(3)的簡寫。在c++中是正確的形式。
(3)在c和c++中都是正確的形式。推薦使用。(還有預設int的main(void)形式)。
(4)和(5)是不用引數時的一種寫法。編譯器級別高時會警告。不推薦使用。
(6)是(7)的另外寫法。兩種都可以,憑個人愛好。
(7)是帶引數的正確的形式。推薦使用。
(8)是一種很少用的寫法,且受系統限制。
(9)一般不認為是正確的寫法。但是在嵌入式系統中有使用(包括void main()形式)
由於main函式不能被其它函式呼叫,因此不可能在程式內部取得實際值。那麼,在何處把實參值賦予main函式的形參呢? 實際上,main函式的引數值是從作業系統命令列上獲得的。當我們要執行乙個可執行檔案時,在dos提示符下鍵入檔名,再輸入實際引數即可把這些實參傳送到main的形參中去。
dos提示符下命令列的一般形式為:
c:\>可執行檔名 引數 引數……;
但是應該特別注意的是,main 的兩個形參和命令列中的引數在位置上不是一一對應的。因為,main的形參只有二個,而命令列中的引數個數原則上未加限制。argc引數表示了命令列中引數的個數(注意:檔名本身也算乙個引數),argc的值是在輸入命令行時由系統按實際引數的個數自動賦予的。
例如有命令行為:
c:\>e24 basic foxpro fortran
argv引數是字串指標陣列,其各元素值為命令列中各字串(引數均按字串處理)的首位址。 指標陣列的長度即為引數個數。陣列元素初值由系統自動賦予。其表示如圖所示:
再例如執行下面的程式:
本例是顯示命令列中輸入的引數。如果上例的可執行檔名為lyy.exe,存放在a驅動器的盤內。因此輸入的命令
c:>a:lyy basic foxpro fortran
main(int argc,char *argv)
則執行結果為:
basic
foxpro
fortran
該行共有4個引數,執行main時,argc的初值即為4。argv的4個元素分為4個字串的首位址。執行while語句,每迴圈一次argv值減1,當argv等於1時停止迴圈,共迴圈三次,因此共可輸出三個引數。在printf函式中,由於列印項*++argv是先加1再列印, 故第一次列印的是argv[1]所指的字串basic。第
二、三次迴圈分別列印後二個字串。而引數lyy是檔名,不必輸出。
C命令列引數 main函式的引數含義
c中的命令列引數 又叫位置引數,它可以被傳到程式裡面,派各種用途 我們先來看main函式的引數 int main intargc,char argv char envp main 函式的引數就是通過命令列來進行傳參的 vs2013傳參方式 專案 屬性 配置屬性 除錯 命令列引數,然後進行傳參。arg...
C語言main函式的引數含義及輸入
2012 04 06 17 23 22 分類 c c 舉報 字型大小訂閱 問題重現 c語言main函式有兩個引數,怎麼在vc6.0下給main函式傳遞引數,以及各引數的意義。帶有引數的main 函式頭格式為 void main int argc,char argv 或void main int ar...
main函式的引數
c程式最大的特點就是所有的程式都是用函式來裝配的。main 稱之為主函式,是所有程 序執行的入口。其餘函式分為有參或無參兩種,均由main 函式或其它一般函式呼叫,若呼叫 的是有參函式,則引數在呼叫時傳遞。main f1 int a,int b f2 int m,int n 在前面課程的學習中,對m...