main函数的参数
2012-12-10 10:57
204 查看
在一些教材中,我们常常可以看到main函数的形式如下:int main(int argc,char* argv[]),这两个参数是干什么的呢?如何传递给main函数呢?
1.含义
首先必须知道,main函数是由系统调用的,在调用的同时传递参数。
例如,在文件file1.c中,有如下内容:
经过编译后,在工程目录的debug文件夹下,可以得到“file1.exe”文件,我们要在DOS下执行这个文件,就要以一定的格式输入命令行,格式如下:
命令名 参数1,参数2,……参数n
比如,要执行上述exe文件,可以输入:
file1
可以得到以下结果:
如果我们要传递参数,则可以输入以下内容:
file1 China BeiJing
现在,我告诉您:
argc的含义是argument count:它是一个int行变量,表示传递给main函数的参数数量;
argv的含义是argument value(值):它是一个指向字符串的指针数组,每个指针元素指向各个具体的参数;
您可以猜到argc的值和argv的值是多少了么?
argc=3,而不是2,因为命令名“file1”也算一个参数!因此从此处也可以知道,argc是恒>=1的。
而argv呢?看下图:
2.用法
既然知道了各个参数的含义,那么如何使用该参数呢?看了下面这个简单的程序您就会明白:
调用方法和运行结果:
懂了吧?实际上,这两个变量的名字 实际上可以随便取的,取坐argc和argv只不过是习惯而已。
P.S:
为什么第二个形参参数要用指针数组?
由于命令行中的字符串的长度事先并不知道,而且各个参数字符串的长度一般也并不相同,因此只有用指针数组能够比较好地满足上述要求,可以从这里体会指针数组的用处。
1.含义
首先必须知道,main函数是由系统调用的,在调用的同时传递参数。
例如,在文件file1.c中,有如下内容:
#include <stdio.h> int main(int argc,char* argv[]) { printf("exe executed!\n"); }
经过编译后,在工程目录的debug文件夹下,可以得到“file1.exe”文件,我们要在DOS下执行这个文件,就要以一定的格式输入命令行,格式如下:
命令名 参数1,参数2,……参数n
比如,要执行上述exe文件,可以输入:
file1
可以得到以下结果:
如果我们要传递参数,则可以输入以下内容:
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++; /*指向下一条参数*/ } }
调用方法和运行结果:
懂了吧?实际上,这两个变量的名字 实际上可以随便取的,取坐argc和argv只不过是习惯而已。
P.S:
为什么第二个形参参数要用指针数组?
由于命令行中的字符串的长度事先并不知道,而且各个参数字符串的长度一般也并不相同,因此只有用指针数组能够比较好地满足上述要求,可以从这里体会指针数组的用处。
相关文章推荐
- 【C语言】使用main函数的参数,实现一个整数计算器
- java中main函数的参数args
- 深入Main函数中的参数argc,argv的使用详解
- main函数的参数:处理命令行选项
- 问题:C#控制台程序参数;结果:设置与读取C#控制台应用程序Main函数中的参数args
- C/C++ 中的main函数的argc和argv参数
- C++中System()函数的使用及带参数的main函数
- main函数的两个参数
- 给c语言main函数传递参数
- main函数参数和atoi和BYTE
- (转)Java程序利用main函数中args参数实现参数的传递
- linux下C语言main函数参数解析
- main函数可变参数问题代码
- main函数的第三个参数envp
- 带参数的main函数
- C语言中main函数的参数
- main函数两个参数用法(转)
- 用getopt处理main函数的参数
- C语言中main函数的参数
- vs如何向main函数传参数、设置字符编码、设置OpenMp等