posts - 1,  comments - 0,  trackbacks - 0
          main(int argc, char *argv[])就是為了讓程序里面能使用參數,argc是argument count的縮寫,表示參數的個數,argv是argument value的縮寫,表示參數的值。
          在以前的例子中,main函數的形式參數列表都是空的。實際上,main函數也可以帶參數。帶參數main函數的定義格式如下:

          void main(int argc, char *argv[])
          {
          ... ...
          }
          argc和argv是main函數的形式參數。這兩個形式參數的類型是系統規(guī)定的。如果main函數要帶參數,就是這兩個類型的參數;否則main函數就沒有參數。變量名稱argc和argv是常規(guī)的名稱,當然也可以換成其他名稱。
          那么,實際參數是如何傳遞給main函數的argc和argv的呢?我們知道,C程序在編譯和鏈接后,都生成一個exe文件,執(zhí)行該exe文件時,可以直接執(zhí)行;也可以在命令行下帶參數執(zhí)行,命令行執(zhí)行的形式為:
          可執(zhí)行文件名稱 參數1 參數2 ... ... 參數n
          可執(zhí)行文件名稱和參數、參數之間均使用空格隔開。例如,我們在DOS下運行copy c:\test.txt d:\test.txt,可執(zhí)行文件名稱為copy,參數1為字符串“c:\test.txt”,參數2為“d:\test.txt”。結果copy命令將c:\test.txt拷貝到d盤,目標文件取為test.txt。
          如果按照這種方法執(zhí)行,命令行字符串將作為實際參數傳遞給main函數。具體為:
          (1) 可執(zhí)行文件名稱和所有參數的個數之和傳遞給argc;
          (2) 可執(zhí)行文件名稱(包括路徑名稱)作為一個字符串,首地址被賦給argv[0],參數1也作為一個字符串,首地址被賦給argv[1],... ...依次類推。
          例如,現在運行命令行(test是編譯后的exe文件名稱):
          C:\TC\test how are you
          那么test工程的main函數參數argc=4;
          argv[0]將保存字符串"C:\TC\test"的首地址;
          argv[1]將保存字符串"how"的首地址;
          argv[2]將保存字符串"are"的首地址;
          argv[3]將保存字符串"you"的首地址;
          下面的例子打印所有的argv參數:
          main(int argc, char *argv[])
          {
          int i;
          printf("\nTotal %d arguments",argc);
          for(i=0;i<argc;i++)
          {
          printf("\nArgument %d = %s ",i+1, argv[i]);
          }
          }
          如果編譯后的exe文件名稱為test,在DOS下運行C:\TC\test how are you,結果輸出:
          Total 4 arguments
          Argument 1 = C:\TC\test.exe
          Argument 2 = how
          Argument 3 = are
          Argument 4 = you
          我們也可以在調試狀態(tài)下輸入命令行參數,方法是:
          在TurboC的Options菜單下有一個子菜單Arguments,選擇該項并確定,彈出輸入窗口;在輸入窗口鍵入命令行參數即可。比如要調試上述的test,可以在輸入窗口鍵入how are you。在調試過程中,可執(zhí)行文件名稱和參數字符串將被傳遞給main函數的形式參數。
          在DOS系統下,人們常常希望在運行exe的同時,傳遞一些有用的信息。例如copy.exe,運行時將源文件名稱和目的文件名稱作為參數傳入。利用指針數組argv作為main函數的形式參數,可以滿足這種需要。
          posted on 2012-03-28 17:08 憤怒的考拉 閱讀(146) 評論(0)  編輯  收藏

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


          網站導航:
           
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿

          隨筆檔案

          文章檔案

          搜索

          •  

          最新評論

          主站蜘蛛池模板: 扶沟县| 全椒县| 定兴县| 高淳县| 晋城| 神池县| 舞阳县| 宜兰市| 如东县| 潮州市| 拉萨市| 谢通门县| 友谊县| 平武县| 武鸣县| 清涧县| 犍为县| 贵南县| 广灵县| 扬中市| 张北县| 泽州县| 工布江达县| 桃园市| 汝南县| 南投市| 惠东县| 承德市| 封开县| 新宾| 江山市| 忻城县| 沾化县| 司法| 龙江县| 桂平市| 榆中县| 上虞市| 利辛县| 德江县| 晋宁县|