我正在学习C并注意到,如果对于简单的程序(比如打印某些东西或其他简单的东西),即使我删除了主程序中的参数,它仍然可以工作,但是我所关注的书将这些参数放在每个程序中.
#include <stdio.h>
int main(int argc, char const *argv[])
// even works if i do int main()
{
/* write your code here */
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我想了解这些论点的原因,为什么我们把它们和它们用于什么?也许指出一个程序的例子,如果我们从main函数中删除这些参数并指出它们的目的是什么,程序将无法工作?
主要签名是:
int main(int argc, char **argv);
Run Code Online (Sandbox Code Playgroud)
argc传入的命令行参数的数量在哪里,包括用户调用的程序的实际名称.
argv包含实际参数,从索引1开始,因为index 0是程序名称.
所以,如果你像这样运行你的程序:
./program hello world
Run Code Online (Sandbox Code Playgroud)
然后:
argc会的3.
argv[0]会的./program.
argv[1]会的hello.
argv[2]会的world.
我希望这对你来说已经足够清楚了.