帶參的main函數——初識

#include <iostream.h>

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

{

       for(inti=0;i<argc;i++)

       {

              cout<<argv[i]<<'\t';            

       }

       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

 

 


ANSI-C(C89/C99)的話main()函數有2種主要形式。 

(1) int main(void) 
(2) int main(int argc, char *argv[]) 

(2)也可寫成int main(int argc, char **argv) 
argv[argc]放空指針(NULL指針)。 
argc和argv可以用別名。 

另外,還有一種受系統限制的形式: 
int main(int argc, char *argv[], char *envp[]) 
前兩個參數同(2),第三個參數envp[]放環境變量。 
這個形式很少用。 

所以嚴格講, 
ANSI-C推薦的帶參數的main()函數只有上面(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()形式

發佈了15 篇原創文章 · 獲贊 20 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章