C语言刚学完一年,平常很少用,感觉好多东西还很模糊。这不遇到最基础的int main(int argc, char *argv[])都不知道什么意思。求助万能的互联网,花十几分钟看完一篇博客之后就理解了。做个备份,以防遗忘。
含义:
- argc是命令行总的参数个数
- argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数 是命令行后面跟的用户输入的参数,比如
功能:
- argc记录了用户在运行程序的命令行中输入的参数的个数。
- arg[]指向的数组中至少有一个字符指针,即arg[0]。它通常指向程序中的可执行文件的文件名。在有些版本的编译器中还包括程序文件所在的路径。
在调用一个可执行程序时,某些情况下需要向程序传递参数。如我们可以在控制台中键入notepad.exe,回车后将执行记事本程序。如果我们希望在打开notepad时同时打开一个文本文件,可以在notepad.exe 后面跟上文件的路径和名字,如notepad.exe example.txt(文件在当前路径)。
那么程序中如何能得到这些输入参数呢?这个工作是编译器帮我们完成的,编译器将输入参数的信息放入main函数的参数列表中。
main函数的参数列表保存了输入参数的信息,第一个参数argc记录了输入参数的个数, 第二个参数是字符串数组,字符串数组的每个单元是char*类型的,指向一个c风格字符串。
以notepad.exe example.txt为例
argc是2,就是说argv数组中有两个有效单元
第一单元指向的字符串是"notepad.exe"
第二单元指向的字符串是"example.txt"
这个东东一般用来为程序提供非常重要的信息,如:数据文件名,等等。
如:copy a.c b.txt
这个时候,a.c和b.txt就是所谓的“非常重要的信息”。不指定这两个文件,你没法进行拷贝。
当你的程序用到argc和argv这两个参数的时候,可以简单地通过判断argc的值,来看看程序的参数是否符合要求。