在一些教材中,咱們經常能夠看到main函數的形式以下:int main(int argc,char* argv[]),這兩個參數是幹什麼的呢?如何傳遞給main函數呢?數組
1.含義函數
首先必須知道,main函數是由系統調用的,在調用的同時傳遞參數。spa
例如,在文件file1.c中,有以下內容:命令行
#include <stdio.h> int main(int argc,char* argv[]) { printf("exe executed!\n"); }
通過編譯後,在工程目錄的debug文件夾下,能夠獲得「file1.exe」文件,咱們要在DOS下執行這個文件,就要以必定的格式輸入命令行,格式以下:debug
命令名 參數1,參數2,……參數n3d
好比,要執行上述exe文件,能夠輸入:指針
file1 code
能夠獲得如下結果:blog
若是咱們要傳遞參數,則能夠輸入如下內容:字符串
file1 China BeiJing
如今,我告訴您:
argc的含義是argument count:它是一個int行變量,表示傳遞給main函數的參數數量;
argv的含義是argument value(值):它是一個指向字符串的指針數組,每一個指針元素指向各個具體的參數;
您能夠猜到argc的值和argv的值是多少了麼?
argc=3,而不是2,由於命令名「file1」也算一個參數!所以今後處也能夠知道,argc是恆>=1的。
而argv呢?看下圖:
2.用法
既然知道了各個參數的含義,那麼如何使用該參數呢?看了下面這個簡單的程序您就會明白:
#include <stdio.h> int main(int argc,char* argv[]) { while(argc>0) { argc--; printf("%s\n",*argv); argv++; /*指向下一條參數*/ } }
調用方法和運行結果: