外勤助手v3.2.0:带参数的main函数,应该怎样运行呢

来源:百度文库 编辑:高校问答 时间:2024/04/29 19:14:12

运行方法:
(假设你的程序为Untitled1.exe)
打开命令提示符:
转到你的Untitled1.exe的目录,
输入下列命令:
Untitled1.exe a basdfsa 1314324 -k -f
回车就可以运行了。

这时,在Main函数里定义的
int main(int argc, char *args[])
里的argc = 6,就是表示有六个参数,
对应的
args[0] = "Untitled1.exe";
args[1] = "a";
args[2] = "basdfsa";
args[3] = "1314324";
args[4] = "-k";
args[5] = "-f";

就是这样子了。

C程序最大的特点就是所有的程序都是用函数来装配的。main( )称之为主函数,是所有程序运行的入口。其余函数分为有参或无参两种,均由main( )函数或其它一般函数调用,若调用的是有参函数,则参数在调用时传递。
main( )
{
. . .
y1 = f1(x1, x2);
. . .
}
f1(int a,int b)
{
. . . .
Y 2 = f 2 ( x 3 , x 4 ) ;
. . . .
}
f2( int m,int n)
{
. . . .
. . . . .
}
对main( )函数始终作为主调函数处理,也就是说,允许main( )调用其它函数并传递参数。事实上, main( )函数既可以是无参函数,也可以是有参的函数。对于有参的形式来说,就需要向其传递参数。但是其它任何函数均不能调用main( )函数。当然也同样无法向main( )函数传递,只能由程序之外传递而来。这个具体的问题怎样解决呢?
我们先看一下main( )函数的带参的形式:
main(argc, argv)
int argc,char * argv[];
{
. . . . .
}
从函数参数的形式上看,包含一个整型和一个指针数组。当一个C的源程序经过编译、链接后,会生成扩展名为. E X E的可执行文件,这是可以在操作系统下直接运行的文件,换句话说,就是由系统来启动运行的。对main( )函数既然不能由其它函数调用和传递参数,就只能由系统在启动运行时传递参数了。
在操作系统环境下,一条完整的运行命令应包括两部分:命令与相应的参数。其格式为:
命令参数1 参数2 . . . .参数n¿
此格式也称为命令行。命令行中的命令就是可执行文件的文件名,其后所跟参数需用空格分隔,并为对命令的进一步补充,也即是传递给main( )函数的参数。
命令行与main( )函数的参数存在如下的关系:
设命令行为: program str1 str2 str3 str4 str5
其中program 为文件名, 也就是一个由program.c 经编译、链接后生成的可执行文件program.exe,其后各跟5个参数。对main( )函数来说,它的参数arc记录了命令行中命令与参数的个数,共6个,指针数组的大小由参数argc的值决定,即为char *argv[6]。

数组的各指针分别指向一个字符串。应当引起注意的是接收到的指针数组的各指针是从命令行的开始接收的,首先接收到的是命令,其后才是参数。

main函数也可以带参数。带参数main函数的定义格式如下:
void main(int argc, char *argv[])
{
... ...
}
argc和argv是main函数的形式参数。这两个形式参数的类型是系统规定的。如果main函数要带参数,就是这两个类型的参数;否则main函数就没有参数。变量名称argc和argv是常规的名称,当然也可以换成其他名称。
那么,实际参数是如何传递给main函数的argc和argv的呢?我们知道,C程序在编译和链接后,都生成一个exe文件,执行该exe文件时,可以直接执行;也可以在命令行下带参数执行,命令行执行的形式为:
可执行文件名称 参数1 参数2 ... ... 参数n

执行文件名称和参数、参数之间均使用空格隔开。例如,在linux下运行程序./a.out 1 2 ,可执行文件名称为./a.out,参数1为字符串1,参数2为2。
如果按照这种方法执行,命令行字符串将作为实际参数传递给main函数。具体为:
(1) 可执行文件名称和所有参数的个数之和传递给argc;所以上面的argc=3
(2) 可执行文件名称(包括路径名称)作为一个字符串,首地址被赋给argv[0],参数1也作为一个字符串,首地址被赋给argv[1],... ...依次类推。

我只说说如何运行!!
将你编好的代码文件(姑且命名为CODE.C)编译连接成可执行文件CODE.EXE,在dos模式下进入到CODE.EXE的当前目录,以下面格式运行即可。
CODE.EXE 参数1 参数2 ... 参数n

主函数的参数可以通过命令行或快捷方式指派 如某些程序附加-window参数就是窗口运行 多数程序不需要参数也可以运行 这主要看程序是怎么写的了 接收参数一般只接受一个字符串数组 该数组的元素值就是根据输入的参数依次排列出来的