關於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為其對應的值。平時使用到的比較少。