水底の小鱼 / C/C 编程 / 关于int main(int argc,char *argv[])的问...

分享

   

关于int main(int argc,char *argv[])的问题[转](仅参考 不全)

2009-07-01  水底の小鱼
每一C     程序都必须有一main()函数,     可以根据自己的爱好把它放在程序的某    
    个地方。有些程序员把它放在最前面,     而另一些程序员把它放在最后面,     无论放    
    在哪个地方,     以下几点说明都是适合的。    
            1.     main()     参数    
            在Turbo     C2.0启动过程中,     传递main()函数三个参数:     argc,     argv和env。    
              *     argc:       整数,     为传给main()的命令行参数个数。    
              *     argv:       字符串数组。    
                                在DOS     3.X     版本中,     argv[0]     为程序运行的全路径名;     对DOS     3.0    
                                以下的版本,     argv[0]为空串("")     。    
                                argv[1]     为在DOS命令行中执行程序名后的第一个字符串;    
                                argv[2]     为执行程序名后的第二个字符串;    
                                ...    
                                argv[argc]为NULL。    
              *env:       安符串数组。env[]     的每一个元素都包含ENVVAR=value形式的字符    
    串。其中ENVVAR为环境变量如PATH或87。value     为ENVVAR的对应值如C:\DOS,     C:    
    \TURBOC(对于PATH)     或YES(对于87)。    
            Turbo     C2.0启动时总是把这三个参数传递给main()函数,     可以在用户程序中    
    说明(或不说明)它们,     如果说明了部分(或全部)参数,     它们就成为main()子程序    
    的局部变量。    
            请注意:     一旦想说明这些参数,     则必须按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     <stdio.h>    
              #include     <stdlib.h>    
              main(int     argc,     char     *argv[],     char     *env[])    
              {    
                        int     i;    
                        printf("These     are     the     %d       command-     line       arguments     passed       to    
                                        main:\n\n",     argc);    
                        for(i=0;     i<=argc;     i++)    
                            printf("argv[%d]:%s\n",     i,     argv[i]);    
                        printf("\nThe     environment     string(s)on     this     system     are:\n\n");    
                        for(i=0;     env[i]!=NULL;     i++)    
                                  printf("     env[%d]:%s\n",     i,     env[i]);    
              }    
            如果在DOS     提示符下,     按以下方式运行EXAMPLE.EXE:    
            C:\example     first_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:    
              argv[0]:C:\TURBO\EXAMPLE.EXE    
              argv[1]:first_argument    
              argv[2]:argument     with     blanks    
              argv[3]:3    
              argv[4]:4    
              argv[5]:last     but     one    
              argv[6]:stop!    
              argv[7]:(NULL)    
              The     environment     string(s)     on     this     system     are:    
              env[0]:     COMSPEC=C:\COMMAND.COM    
              env[1]:     PROMPT=$P$G                           /*视具体设置而定*/    
              env[2]:     PATH=C:\DOS;C:\TC               /*视具体设置而定*/  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多
    喜欢该文的人也喜欢 更多

    ×
    ×

    ¥.00

    微信或支付宝扫码支付:

    开通即同意《个图VIP服务协议》

    全部>>