C 语言中规定 main 函数的参数可以有两个,习惯上这两个参数写成 argc
和 argv 。因此,main 函数的函数头可以写成:main (argc,argv) 。C 语言
还规定 argc(第一个参数)必须是整型变量,argv(第二个参数)必须是指
向字符串的指针数组。加上形参说明以后,main 函数的函数头应该写成:
main (int argc ,char *argv[])
或者 main (int argc ,char **argv)
由于 main 函数不能被其他函数调用,因此不可能在程序内部取得实际值。
那么,在何处把实参赋予 main 函数呢?
实际上,main 函数的参数值是从操作系统命令行上获得的。当要运行一个可
执行文件时,输入实际参数即可把这些实参传递到 main 的形参中去。
命令行的一般形式为:./可执行文件名 参数 参数…… ;但是应该特别注意
的是,main 的两个形参和命令行中的参数在位置上不是一一对应的。因为 ,
main 的形参只有 2 个,而命令行的参数个数原则上未加限制。
argc: 整数, 为传给 main()的命令行参数个数。文件名也算一个参数
(argc 的值,是在输入命令行时,由系统按照实际参数的个数自动复制的)
* argv: 字符串数组。
argv[0] 为在命令行中执行程序名;
argv[1] 为在命令行中执行程序名后的第一个字符串;
argv[2] 为执行程序名后的第二个字符串;
...
argv[argc]为 NULL。
这两个参数用于在运行程序时,从外部给程序传递参数,其中 argc 中保存
了参数的个数,argv 中分别保存了各个参数.
例 如 一 个 程 序 的 main() 函 数 头 部 形 如 int main(int argc, char
*argv[]),编译链接后生成的可执行文件名为 a.out,那么请注意下面的调用:
./a.out para1 para2
在上面的命令行中,a.out 是要运行的程序名称,后面的 para1 和 para2
就是传入程序的两个参数,这两个参数就通过 argc 和 argv 传入程序,注意这
些参数都是字符串。
通过上面的调用,在这个程序中,argc=3,a.out 是第一个参数,这个字
符串将保存在 argv[0]中,para1 和 para2 分别是第二和第三个参数,它们分
别被保存在 argv[1]和 argv[2]中。
评论0
最新资源