在一些教材中,咱们经常能够看到main函数的形式以下:int main(int argc,char* argv[]),这两个参数是干什么的呢?如何传递给main函数呢?数组
1.含义函数
首先必须知道,main函数是由系统调用的,在调用的同时传递参数。spa
例如,在文件file1.c中,有以下内容:命令行
#include <stdio.h> int main(int argc,char* argv[]) { printf("exe executed!\n"); }
通过编译后,在工程目录的debug文件夹下,能够获得“file1.exe”文件,咱们要在DOS下执行这个文件,就要以必定的格式输入命令行,格式以下:debug
命令名 参数1,参数2,……参数n3d
好比,要执行上述exe文件,能够输入:指针
file1 code
能够获得如下结果:blog
若是咱们要传递参数,则能够输入如下内容:字符串
file1 China BeiJing
如今,我告诉您:
argc的含义是argument count:它是一个int行变量,表示传递给main函数的参数数量;
argv的含义是argument value(值):它是一个指向字符串的指针数组,每一个指针元素指向各个具体的参数;
您能够猜到argc的值和argv的值是多少了么?
argc=3,而不是2,由于命令名“file1”也算一个参数!所以今后处也能够知道,argc是恒>=1的。
而argv呢?看下图:
2.用法
既然知道了各个参数的含义,那么如何使用该参数呢?看了下面这个简单的程序您就会明白:
#include <stdio.h> int main(int argc,char* argv[]) { while(argc>0) { argc--; printf("%s\n",*argv); argv++; /*指向下一条参数*/ } }
调用方法和运行结果: