C / C ++中的默认int主参数
我正在搞乱C / C ++中的项目,我注意到了这一点:
C ++
#include int main (int argc, const char * argv[]) { // insert code here... cout << "Hello, World!\n"; return 0; }
和
C
#include int main (int argc, const char * argv[]) { // insert code here... printf("Hello, World!\n"); return 0; }
所以我总是想知道这些,这些默认参数在int main下的C / C ++中究竟做了什么? 我知道应用程序仍然会在没有它们的情况下编译,但它们的用途是什么?
它们保存在命令行上传递给程序的参数。 例如,如果我有程序a.out
并且我这样调用它:
$ ./a.out arg1 arg2
argv
的内容将是一个包含的字符串数组
- [0]
"a.out"
– 可执行文件的文件名始终是第一个元素 - [1]
"arg1"
– 其他论点 - [2]
"arg2"
– 我通过了
argc
保存argv
的元素数量(在C中,您需要另一个变量来知道数组中传递给函数时有多少元素)。
您可以使用这个简单的程序自己尝试:
C ++
#include int main(int argc, char * argv[]){ int i; for(i = 0; i < argc; i++){ std::cout << "Argument "<< i << " = " << argv[i] << std::endl; } return 0; }
C
#include int main(int argc, char ** argv){ int i; for(i = 0; i < argc; i++){ printf("Argument %i = %s\n", i, argv[i]); } return 0; }
如果你想通过命令行接受参数,那么你需要使用main函数中的参数.argc是参数count和charecter指针数组列出参数。 请参阅此链接http://www.cprogramming.com/tutorial/c/lesson14.html
这些是用于命令行参数。 argc
是参数的数量,参数存储为以null结尾的字符串数组( argv
)。 通常,没有传入命令行参数的程序仍然会有一个存储在argv
; 也就是说,用于执行程序的名称(根据程序的执行方式,它并不总是存在,但我不记得是什么情况)。
argc和argv是如何在C和C ++中将命令行参数传递给main()的。
argc将是argv指向的字符串数,这通常比从终端传递的参数数量多一个,因为通常第一个是程序的名称。