main函数参数的使用
在C系ProgramLanguage中main函数是程序的入口。
我们晓得在cmd中,在可执行文件的路径下直接输入文件名可以直接运行该文件。在使用一些其他程序如gcc时也是,不过我们要传入参数,比如-o、文件名等,那么我们作为命令输入的参数是如何传递给程序使用的呢。答案就是main函数的argc、args参数。
也就是说可以实现命令式的效果
有一个解决A+B problem的程序,生成的可执行文件名叫add.exe,那么在cmd中使用cd命令到当前目录下,输入add 1 1 得到了输出2如下图
程序如下
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[]){
if(argc==3)
printf("%g",atof(args[1])+atof(args[2]));
return 0;
}
其中argc是一个int型变量表示命令所有的参数个数
char *argv[ ]等同于char **argv,argv是一个字符串数组,以字符串形式传入命令及其参数
例如上图中的使用的add 1 1
则系统传给main函数的argc为3,argv为{“add”,“1”,“1”}
实际上传入的argv[0]为命令的路径,也就是说如果用绝对路径运行该exe文件,argv[0]就为绝对路径
且argv[argc] == NULL
在Java中,main函数中同样
public static void main(String[] args)
不过Java中的args数组是从命令的第一个参数开始的,而非命令路径。也就是说以命令行java add 1 1运行java程序时args[0]是"1",而非"java"或"add"
2018/12/31