关于main函数:指针数组作为main函数的参数

来源:互联网 发布:js定时刷新页面 编辑:程序博客网 时间:2024/06/06 00:01

main函数的一般形式如下:

  1. main()

从上面会发现main函数是没有参数的,那么,到底main函数能否有参数呢?实际上main函数可以是无参函数,也可以是有参函数。对于有参的形式来说,就需要向其传递参数。下面先看一下main函数的带参的形式。

  1. main(int argc,char *argv[])

从函数参数的形式上看,包含一个整型和一个指针数组。当一个C的源程序经过编译、连接后,会生成扩展名为.exe的可执行文件,这是可以在操作系统下直接运行的文件,对于main函数来说,其实际参数和命令是一起给出的,也就是在一个命令行中包括命令名和需要传给main函数的参数。命令行的一般形式为:

  1. 命令名 参数1 参数2……参数n

例如:

  1. d:\debug\1 hello hi yeah

命令行中的命令就是可执行文件的文件名,如语句中的d:\debug\1,命令名和其后所跟参数之间需用空格分隔。命令行与main函数的参数存在如下的关系。

设命令行为:

  1. file1 happy bright glad

其中,file1为文件名,也就是一个由file1.c经编译、连接后生成的可执行文件file1.exe,其后各跟3个参数。以上命令行与main函数中的形式参数关系如下:

参数argc记录了命令行中命令与参数的个数(file1、happy、bright、glad),共4个,指针数组的大小由参数的值决定,即为char *argv[4],该指针数组的取值情况如图11.37所示。

利用指针数组作为main函数的形参,可以向程序传送命令行参数。

参数字符串的长度是不定的,参数字符串的长度不需要统一,且参数的数目也是任意的,并不规定具体个数。

图11.37  指针数组取值

下面通过例11.23具体看一下带参的main函数如何使用。

实例位置:光盘 \MR\ Instance\11\11.23

【实例11.23】 输出main函数的参数内容

  1. #include<stdio.h>
  2. main(int argc,char *argv[]) /*main函数为带参函数*/
  3. {
  4. printf("the list of parameter:\n");
  5. printf("命令名:\n");
  6. printf("%s\n",*argv);
  7. printf("参数个数:\n");
  8. printf("%d\n",argc);

运行结果如图11.38所示。

 

图11.38  输入命令行

 

0 0
原创粉丝点击