C/C++、Java中main函数参数的使用

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==3printf("%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

posted @ 2018-12-31 22:26  kafm  阅读(176)  评论(0编辑  收藏  举报