在許多C ++ IDE和編譯器中,當它爲您生成主要功能時,它看起來像這樣: ios
int main(int argc, char *argv[])
當我不使用IDE而是僅使用命令行編譯器來編寫C ++時,鍵入: 數組
int main()
沒有任何參數。 這是什麼意思,對個人程序相當重要嗎? ide
argv
和argc
是在C和C ++中將命令行參數傳遞給main()
。 spa
argc
將是argv
指向的字符串數。 (實際上)這將是1加上參數的數量,由於幾乎全部的實現都將程序名放在數組的前面。 命令行
按照慣例,這些變量分別命名爲argc
( 參數計數 )和argv
( 參數向量 ),可是能夠給它們指定任何有效的標識符: int main(int num_args, char** arg_strings)
一樣有效。 指針
若是您不打算處理命令行參數,則也能夠徹底省略它們,產生int main()
。 code
嘗試如下程序: 字符串
#include <iostream> int main(int argc, char** argv) { std::cout << "Have " << argc << " arguments:" << std::endl; for (int i = 0; i < argc; ++i) { std::cout << argv[i] << std::endl; } }
用./test a1 b2 c3
運行它會輸出 get
Have 4 arguments: ./test a1 b2 c3
argc
是從命令行傳遞到程序中的參數數量,而argv
是參數數組。 編譯器
您能夠遍歷參數,知道它們的數量,例如:
for(int i = 0; i < argc; i++) { // argv[i] is the argument at index i }
main
的參數表示啓動程序時提供給程序的命令行參數。 argc
參數表示命令行參數的數量,而char *argv[]
是字符串(字符指針)的數組,表示在命令行上提供的各個參數。
第一個參數是提供的參數數量,第二個參數是表示這些參數的字符串列表。
二者的
int main(int argc, char *argv[]); int main();
是C或C ++程序入口點的合法定義。 Stroustrup:C ++樣式和技術常見問題解答詳細介紹了一些可能對您的主要功能適用或合法的變體。