main函数的两个参数
在学习C语言的时候,对main函数的函数有可能直接没有写,有可能直接写一个void。今天在学习linux的时候需要需要对main函数输入参数,然后在main函数里面根据参数进行一些操作。因此,记录一下main函数的两个参数理解。此处,我们只对参数进行讲解,不对main函数的返回值进行讲解。main函数常见的写法如下:
int main(void) //参数为空
int main() //没有参数
int main(int argc, char *argv[])
//或者如下
int main(int argc, char **argv)
前两种写法表示main函数没有输入的参数。我们着重讲第三个和第四个。
首先,第一个参数很简单,argc代表的是输入参数的个数(参数之间用空格隔开);第二个参数就是输入参数的集合。对于 char * argv[]:可以理解为: (char*) argv[],同样的理解 int argv[]。 可以知道前者代表的是一个数组,数组里面的元素是char类型的指针变量,所以这个是一个指针数组,指针所指向的类型为char型。 对于char **argv: 可以理解为 (char*) *argv, 即是argv是一个指针变量,这个指针指向的的数据类型是一个指向char类型的指针。即是: argv-> char*->char。 为什么是char类型呢,因为我们输入的参数就是一个个的字符串。 如下所示,系统将输入的参数当做字符串进行处理。
//下面是输入参数
c.text file1 file2