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 arguments in total\n", argc);
int i;
for(i = 0; i < argc; i ++)
{
printf("Argument %d = %s\n", i+1, argv[i]);
}
return 0;
}
程序编完之后保存,但不要编译,可以看到源文件有两个:
点击“编译”按纽后,多了test.o和Test.exe文件。
test.o为目标文件,这里的o即为Object的缩写。
test.o进一步转化为Test.exe。Test.exe是Windows操作系统下的可执行文件。exe是Executable的缩写。
点击“Run”按纽,实际上就是运行Test.exe文件
运行结果为
exe文件后面是可以带参数的。下面,用另一种方式运行Test.exe,并且后面带上参数。
打开命令行窗口,输入F:\C_Projects\Test.exe how are you?
这种形式是可执行文件后面带了三个参数,以分隔号来表示。
如果不加任何参数,在命令行窗口执行exe文件,就相当于点击编译器里的“Run”按纽
更多内容请关注微信公众号