下面有这样的一段代码

#include <stdio.h>
int main(int arg){
printf("%d\n",arg);
}

arg代表的是执行程序的时候,传递了几个参数,程序本身就算作1个参数,使用​​gcc​​编译之后默认生成文件叫做a.out

下面的命令会让该程序打印出1(运行a.out程序使用:​​./​​+程序名)

shiwentian@LXAJT101017491:~$ ./a.out

下面的命令会打印出2

shiwentian@LXAJT101017491:~$ ./a.out abc1

下面的命令会打印出4

shiwentian@LXAJT101017491:~$ ./a.out abc1 abc2 abc3

C语言中main方法第一个参数必须是上述说的这样,main方法也可以存在第二个参数,并且必须是char指针数组的指针,例如下面这样

#include "stdio.h"

int main(int len,char * * arg){
for(int i=0;i<len;i++){
char * p=*(arg+i);
puts(p);//puts函数的参数是指向数组第一个元素的指针
}
}

输入下面的命令

./a.out aa bb cc

打印出下面的内容

./a.out
aa
bb
cc

还有一种写法,是下面这样子的,它与上面的写法本质上是完全相同的,都是一个指针,所以中括号中[]没有数量,详情应该参考​​数组与指针​

int main(int len,char * arg[])