C/C++中的main()函数,可以带形式参数,也可以不带形式参数。这两种形式分别为:
1)int main()
2)int main(int argc, char *argv[]) 或者 int main(int argc, char **argv)
因为main()函数通常是由操作系统调用的,所以平时写程序,基本上不用带参数。但是从学习的角度来看,了解一下参数也是有益处的。

第一个参数,argc是argument count的缩写,表示“参数个数”。
第二个参数,argv[]是argument vector的缩写,表示指向字符串(即字符数组)的指针数组。咱们之前学过指针,那么指针数组是什么意思呢?顾名思义,指针数组是表示一组指针。
指向字符串的指针数组就表示为:有一组指针,这组指针里的每个指针,都指向了一个字符串。

下面用一个具体的程序,来帮助理解。这个程序是在Win 10系统下用Dev C++编的。

#include <stdio.h>

int main(int argc, char *argv[])
{
printf("There are %d, argc);

int i;
for(i = 0; i < argc; i ++)
{
printf("Argument %d = %s\n", i+1, argv[i]);
}

return 0;
}

程序编完之后保存,但不要编译,可以看到源文件有两个:

小朋友学C语言(34):main函数的参数_命令行

点击“编译”按纽后,多了test.o和Test.exe文件。

小朋友学C语言(34):main函数的参数_字符串_02

test.o为目标文件,这里的o即为Object的缩写。

test.o进一步转化为Test.exe。Test.exe是Windows操作系统下的可执行文件。exe是Executable的缩写。

小朋友学C语言(34):main函数的参数_字符串_03

点击“Run”按纽,实际上就是运行Test.exe文件

小朋友学C语言(34):main函数的参数_c语言_04

运行结果为

小朋友学C语言(34):main函数的参数_c语言_05

exe文件后面是可以带参数的。下面,用另一种方式运行Test.exe,并且后面带上参数。

打开命令行窗口,输入F:\C_Projects\Test.exe how are you?

这种形式是可执行文件后面带了三个参数,以分隔号来表示。

小朋友学C语言(34):main函数的参数_命令行_06

如果不加任何参数,在命令行窗口执行exe文件,就相当于点击编译器里的“Run”按纽

小朋友学C语言(34):main函数的参数_命令行_07


更多内容请关注微信公众号

小朋友学C语言(34):main函数的参数_指针数组_08