关于main函数的.docx

上传人:小飞机 文档编号:3305912 上传时间:2023-03-12 格式:DOCX 页数:5 大小:38.61KB
返回 下载 相关 举报
关于main函数的.docx_第1页
第1页 / 共5页
关于main函数的.docx_第2页
第2页 / 共5页
关于main函数的.docx_第3页
第3页 / 共5页
关于main函数的.docx_第4页
第4页 / 共5页
关于main函数的.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《关于main函数的.docx》由会员分享,可在线阅读,更多相关《关于main函数的.docx(5页珍藏版)》请在三一办公上搜索。

1、关于main函数的main(int argc,char *argv ) argv为指针的指针 argc为整数 char *argv or: char *argv or: char argv main括号内是固定的写法。 下面给出一个例子来理解这两个参数的用法: 假设程序的名称为prog, 当只输入prog,则由操作系统传来的参数为: argc=1,表示只有一程序名称。 argc只有一个元素,argv0指向输入的程序路径及名称:./prog 当输入prog para_1,有一个参数,则由操作系统传来的参数为: argc=2,表示除了程序名外还有一个参数。 argv0指向输入的程序路径及名称。 a

2、rgv1指向参数para_1字符串。 当输入prog para_1 para_2 有2个参数,则由操作系统传来的参数为: argc=3,表示除了程序名外还有2个参数。 argv0指向输入的程序路径及名称。 argv1指向参数para_1字符串。 argv2指向参数para_2字符串。 void main( int argc, char *argv ) char *argv : argv 是一个指针数组,他的元素个数是argc,存放的是指向每一个参数的指针, 他的第一个元素即argv0为编译生成的可执行文件名(包括路径eg:F:VCEx1DebugEx1.exe),从二个元素(argv1)开始,

3、是每一个参数 int argc 表示argv的大小,是实际参数个数1,其中1是因为argv0是编译后的可执行文件名 main主函数 每一C 程序都必须有一main函数, 可以根据自己的爱好把它放在程序的某 个地方。有些程序员把它放在最前面, 而另一些程序员把它放在最后面, 无论放 在哪个地方, 以下几点说明都是适合的。 1. main 参数 在Turbo C2.0启动过程中, 传递main函数三个参数: argc, argv和env。 * argc: 整数, 为传给main的命令行参数个数。 * argv: 字符串数组。 在DOS 3.X 版本中, argv0 为程序运行的全路径名; 对DOS

4、 3.0 以下的版本, argv0为空串() 。 argv1 为在DOS命令行中执行程序名后的第一个字符串; argv2 为执行程序名后的第二个字符串; . argvargc为NULL。 *env: 安符串数组。env 的每一个元素都包含ENVVAR=value形式的字符 串。其中ENVVAR为环境变量如PATH或87。value 为ENVVAR的对应值如C:DOS, C: TURBOC(对于PATH) 或YES(对于87)。 Turbo C2.0启动时总是把这三个参数传递给main函数, 可以在用户程序中说明(或不说明)它们, 如果说明了部分(或全部)参数, 它们就成为main子程序 的局部

5、变量。 请注意: 一旦想说明这些参数, 则必须按argc, argv, env 的顺序, 如以下 的例子: main main(int argc) main(int argc, char *argv) main(int argc, char *argv, char *env) 其中第二种情况是合法的, 但不常见, 因为在程序中很少有只用argc, 而不 用argv的情况。 以下提供一样例程序EXAMPLE.EXE, 演示如何在main函数中使用三个参数: /*program name EXAMPLE.EXE*/ include include main(int argc, char *argv

6、, char *env) int i; printf(These are the %d command- line arguments passed to main:nn, argc); for(i=0; i=argc; i+) printf(argv%d:%sn, i, argvi); printf(nThe environment string(s)on this system are:nn); for(i=0; envi!=NULL; i+) printf( env%d:%sn, i, envi); 如果在DOS 提示符下, 按以下方式运行EXAMPLE.EXE: C:example f

7、irst_argument argument with blanks 3 4 last but one stop! 注意: 可以用双引号括起内含空格的参数, 如本例中的: argument with blanks和Last but one)。 结果是这样的: The value of argc is 7 These are the 7 command-linearguments passed to main: argv0:C:TURBOEXAMPLE.EXE argv1:first_argument argv2:argument with blanks argv3:3 argv4:4 argv

8、5:last but one argv6:stop! _ 命令行界面的程序,通常都需要输入命令行参数帮助程序执行。假定有一个可执行程序名为test。那么运行该程序的的命令行如下: test 带命令行参数是同一行中的附加项: test c TEST 其中 c 和 TEST就是命令行参数。C程序可以将这些附加参数读出来,并为自己所用,比如作为程序运行的条件。C程序通过使用main的参数来读取这些附加参数,下面的repeat.c给出一个读出main参数的例子: repeat.c: #include #include int main(int argc, char *argv) int count;

9、printf(The command line has %d arguments:n, argc - 1); for(count = 1; count argc; count+) printf(%d: %sn, count, argvcount); printf(n); /system(PAUSE); return 0; 这里先解释一下main(int argc, char*argv)这个函数中两个参数的意义,argc记录的是命令行中输入参数的数目,argv是一个拥有argc个元素的字符串数组,每个元素 保存一个命令行中输入的参数。 编译这个文件为可执行文件repeat: gcc repeat.c -o repeat 按下 列方式执行 repeat 程序 ./repeat I love you 3 输出如下: The command line has 3 arguments: 1: I 2: love you 3: 3 在这个例子中,argc的 值为4,命令行一共输入了四个参数“./repeat”、“I”、“love you”、“3”。在DOS和UNIX环境下,命令行参数中用”符号表示其是一个字符串,视为一个参数。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号