理论教育 C语言程序设计-main函数参数解析

C语言程序设计-main函数参数解析

时间:2023-11-02 理论教育 版权反馈
【摘要】:在前面编写的所有程序中,main函数都没有参数,即函数名称main后面的括号内是空的。实际上,在某些情况下,main函数可以有参数。本节要介绍的main函数参数,就是“命令行”中的字符串。字符串copy是命令名,它是编号为0的命令行参数;memo.doc是编号为1的命令行参数;letter.doc是编号为2的命令行参数。C程序通过main函数的参数获取命令行参数信息。当将一个C程序调入内存准备执行时,main函数的参数argc和argv被自动给定初值。

C语言程序设计-main函数参数解析

在前面编写的所有程序中,main函数都没有参数,即函数名称main后面的括号内是空的。实际上,在某些情况下,main函数可以有参数。

虽然启动一个程序有不同的方法,但基本方式是在操作系统命令状态下由键盘输入一个命令。操作系统根据命令名去查找相应的程序代码文件,把它装入内存并令其开始执行。“命令行”就是为启动一个程序而在操作系统状态下输入的表示命令的字符行。

目前常用的操作系统都采用图形用户界面,在要求执行程序时,一般不是通过“命令行”的形式发出命令,而是通过单击图标或菜单项等。但实际的“命令行”仍然存在,它们存在于图标或菜单的定义中。

在要求执行一个命令时,所提供的命令行中往往不仅是命令名,可能还需要提供另外的信息。例如,在DOS系统里用copy命令将文件memo.doc的内容复制到当前目录中的文件letter.doc中,要输入如下命令:

这就是一个“命令行”。其中,copy是“复制”命令,文件名memo.doc和letter.doc是命令的附加信息。

本节要介绍的main函数参数,就是“命令行”中的字符串。

C语言把命令行中的字符看成由空格分隔的若干个字符串,每个字符串是一个命令行参数。(www.daowen.com)

第1个字符串是命令名,它是编号为0的参数(如上面示例中的copy),后面的字符串,依次是编号为1、2、…的参数(如上面示例中的memo.doc和letter.doc)。在程序中可以接受和处理每个命令行参数。

对于上面示例中执行“复制”命令的字符串,这个字符串对应的命令行中共有3个参数。字符串copy是命令名,它是编号为0的命令行参数;memo.doc是编号为1的命令行参数;letter.doc是编号为2的命令行参数。

C程序通过main函数的参数获取命令行参数信息。main函数有两个参数,它的原型如下:

main函数的两个参数常用argc、argv作为名字。这两个参数也可以用其他名字,使用argc和argv只是习惯,但即使这两个参数用了其他名字,它们的类型也是确定的。

当将一个C程序调入内存准备执行时,main函数的参数argc和argv被自动给定初值。argc的值是命令行中的参数的个数;argv是一个字符型指针数组,这个数组里共有argc+1个字符型指针变量,其中的前argc个指针变量分别存储命令行参数的各字符串首地址,最后是一个空指针,表示数组结束。

可以使用系统自动给定的参数argc和argv的初值,编写程序,对“命令行”中的各个字符串进行操作。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈