man函數輸入參數分析

          argv: 指針的指針
           
          argc: 整數
           
          char **argv or char *argv[] or char argv[][]
           
           
          為了能形象的說明這兩個參數的含義,我們先用一個實例來進行講解:
           
           
          假設程序的名稱為test,當只輸入test,則由操作系統傳來的參數為:
           
          argc = 1,表示只有一程序名稱;
           
          argc只有一個元素,argv[0]指向輸入的程序路徑及名稱:./ test
           
           
          當輸入test para_1,有一個參數,則由操作系統傳來的參數為:
           
          argc = 2,表示除了程序名外還有一個參數;
           
          argv[0]指向輸入的程序路徑及名稱;
           
          argv[1]指向參數para_1字符串
           
           
          當輸入test para_1 para_2 有2個參數,則由操作系統傳來的參數為:
           
          argc = 3,表示除了程序名外還有兩個參數;
           
          argv[0]指向輸入的程序路徑及名稱;
           
          argv[1]指向參數para_1字符串;
           
          argv[2]指向參數para_2字符串;
           
          以此類推………………
           
           
          void main( int argc, char *argv[] )
           
          char *argv[]: argv是一個指針數組,元素個數是argc,存放的是指向每一個參數的指針,第一個元素即argv[0]為程序運行的全路徑名,從二個元素(argv[1])開始,是每一個參數的名稱,最后一個元素為NULL。總的來說,即:
           
          * argv: 字符串數組
           
          argv[0] 為程序運行的全路徑名
           
          argv[1] 為執行程序名后的第一個字符串;
           
          argv[2] 為執行程序名后的第二個字符串;
           
          ...
           
          argv[argc]為NULL。
           
          int argc: 表示argv的大小,是實際參數個數+1,其中+1是因為argv[0]是編譯后的可執行文件名
           
           
          main() 參數 :
           
          Turbo C2.0啟動時總是把argc、argv、env(存放環境變量)這三個參數傳遞給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()函數中使用三個參數:
           
           
          #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] );
           
          }
           
          ./EXAMPLE first "I’m a good boy" c "last " stop
           
          注意: 可以用雙引號括起內含空格的參數, 如本例中的: " argument with blanks"和"Last but one")。
           
          結果是這樣的:
           
          These are the 6 command-linearguments passed to main:
           
          argv[0]:./ EXAMPLE
           
          argv[1]:first
           
          argv[2]: I’m a good boy
           
          argv[3]:c
           
          argv[4]: last
           
          argv[5]:stop
           
          argv[6]:(NULL)

          posted on 2012-07-16 09:15 姚先進 閱讀(276) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
           
          主站蜘蛛池模板: 紫云| 江川县| 苍南县| 色达县| 新干县| 外汇| 天门市| 襄垣县| 苍南县| 惠安县| 东源县| 剑河县| 阿克苏市| 赤城县| 常德市| 湘潭县| 芜湖市| 台中市| 广汉市| 桦川县| 留坝县| 荆州市| 临泉县| 武乡县| 礼泉县| 仪陇县| 蚌埠市| 灵川县| 惠安县| 肥西县| 平果县| 馆陶县| 松滋市| 东乡族自治县| 九龙城区| 淮北市| 石门县| 冷水江市| 高台县| 凤城市| 陈巴尔虎旗|