關於int main(int argc,char *argv[])的問題

main()主函數     
    
            每一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               /*視具體設置而定*/    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章