main
函数通常是应用程序第一个执行的函数。对基于命令行的程序来说,通过为其传递信息来打开某种行为的开关或控制某种行为很常见。可以用这些参数来指定要处理的文件或是配置应用程序的输出。比如说,Linux的ls
命令会基于接收到的参数列出当前目录下的文件。
C用传统的argc
和argv
参数支持命令行参数。第一个参数argc
,是一个指定传递的参数数量的整数。系统至少会传递一个参数,这个参数是可执行文件的名字。第二个参数argv
,通常被看做字符串指针的一维数组,每个指针引用一个命令行参数。
下面的main
函数只是简单地列出了它的参数,每行一个。在这个版本中,argv
被声明为一个char
指针的指针。
程序可以用下面的命令执行:
输出如下:
使用空格将每个命令行参数分开,这个程序的内存分配如下图。
int main(int argc, char* argv[]) {
这跟char** argv
是等价的。