關於int main(int argc, const char** argv) 中arg和argv引數的解析
阿新 • • 發佈:2020-12-15
關於int main(int argc, const char** argv) 中arg和argv引數的解析
1. 帶形參的main函式用法
- 帶形參的main函式,如 main( int argc, char* argv[], char **env ) ,是UNIX、Linux以及Mac OS作業系統中C/C++的main函式標準寫法,並且是血統最純正的main函式寫法。
- 在如今的Visual Studio編譯器中,main()函式帶有引數argc和argv或者不帶,即無論是否在函式體中使用argc和argv,返回值為void或不為void,都是合法的。
- 一般有很多變體:
// 返回值整形帶參的main函式 int main(int argc, const char** argv){ return 0; }
// 返回值整形不帶參的main函式
int main(){
return 0;
}
// 返回值為void的main函式
void main(){
return 0;
}
2. argc,argv的具體含義
- argc和argv引數在用命令列編譯程式時有用。main( int argc, char* argv[], char **env ) 中
- 第一個引數,int型的argc,為整型,用來統計程式執行時傳送給main函式的命令列引數的個數,在VS中預設值為1。
- 第二個引數,char*型的argv[],為字串陣列,用來存放指向的字串引數的指標陣列,每一個元素指向一個引數。各成員含義如下:
- argv[0]指向程式執行的全路徑名
- argv[1]指向在DOS命令列中執行程式名後的第一個字串
- argv[2]指向執行程式名後的第二個字串
- argv[3]指向執行程式名後的第三個字串
- argv[argc]為NULL
- 第三個引數,char**型的env,為字串陣列。env[]的每一個元素都包含ENVVAR=value形式的字串,其中ENVVAR為環境變數,value為其對應的值。平時使用到的比較少。