天天看點

main函數參數的用法

main函數中兩個參數的用法

MSDN6.0中寫道:

argc is An integer specifying how many arguments are passed to the program from the command line. Because the program name is considered an argument, argc is at least 1.

即是第一個表示參數的個數;第二個參數中argv[0]為自身運作目錄路徑和程式名,argv[1]指向第一個參數、argv[2]指向第二個參數、等等。

當你在CMD 指令行輸入帶參數的指令: XXX.exe /a /b

後面的/a /b等等内容,就是main函數用來接收的參數,你就可以自己根據參數的不同,來運作不同的代碼了.

#include "iostream"
using namespace std;
int main(int argc,char **argv)
{
cout<<argc<<endl<<argv[argc-]<<endl;
return ;
}
           

運作下知道argv[0]是exe的目錄具體位置.

這兩個參數用于在運作程式時,從外部給程式傳遞參數,其中argc中儲存了參數的個數,argv中分别儲存了各個參數.

例如一個程式中main()形如int main(int argc, char *argv[]),編譯連結後生成的可執行檔案名為a.exe,那麼在指令行調用時如:

a.exe -abc -def

在上面的指令行中,a.exe是要運作的程式名,後面的abc和def就是傳入程式的兩個參數,這兩個參數就通過argc和argv傳入程式,注意這些參數都是字元串.通過上面的調用,程式中,argc=3,a.exe是第一個參數,這個字元串将儲存在argv[0]中,abc和def分别是第二和第三個參數,它們分别被儲存在argv[1]和argv[2]中.

不合法的main函數指令行參數表示形式是

A) main(int a,char *c[])     B) main(int arc,char **arv)
C) main(int argc,char *argv) D) main(int argv,char *argc[])
答案是C
           

main的第2個參數應該為一個字元數組指針,B的第二個參數是一個指向字元的指針的指針,也就是一個字元串數組;

C的第二個參數是一個指向字元的指針,也就是一個字元串.

char **argv或者char *argv[]是個二維數組,也可以了解為一個存放字元指針的數組—字元指針數組。每個元素存放一個字元指針,而字元指針又是可以指向一個字元串的,這n個字元串分别由argv[0]~~~argv[n]來指向.

這個就是指針數組,不是别的,特别不是二維數組

本文另外可參照http://blog.csdn.net/yhawaii/article/details/7361302