国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
C語言的命令行參數(shù)

http://blog.csdn.net/daheiantian/article/details/6246519

2011

         命令行參數(shù)的最大作用就是讓我們可以在程序之外控制程序,例如linux或者dos中我們經(jīng)常使用的命令,從本質(zhì)上將是一個程序;而我們使用的參數(shù),就是該命令(對應(yīng)的程序)的命令行參數(shù)。

         正是由于命令行的這么重要的作用,所以它成為各種編程語言不可缺少的功能,只是實(shí)現(xiàn)細(xì)節(jié)上略有不同,但大體上都是一樣的,而且都比較簡單。

1. 先想一想

1.1 程序中在哪里接收命令行參數(shù)(where)

         命令行參數(shù),顧名思義,就是在命令行調(diào)用程序時傳遞的參數(shù),那么誰來接收呢,一定是main函數(shù)了,因?yàn)槌绦蚴菑膍ain函數(shù)開始執(zhí)行的啊。那作為一個函數(shù),main怎么接收參數(shù)呢,很明顯,用參數(shù)接收是最簡單的方式。

1.2 程序中怎樣接收去接收參數(shù)(how)

        想一下現(xiàn)在linux或者dos命令中使用參數(shù)的形式,你是否能想到一個比現(xiàn)在的方式更簡單的方式:【命令 選項(xiàng) 參數(shù)】。我是想不出來了,那么針對這種方式,如何來接收呢。其實(shí)也很簡單,因?yàn)樗鼈兪褂每崭穹珠_的,所以我們只要將它們作為字符串依次存在一個數(shù)組就行了,也就是使用一個指針數(shù)組,每個元素是一個字符指針。對于數(shù)組我們經(jīng)常使用的一個特性就是數(shù)組的長度,為了防止每次都自己編寫代碼求長度(實(shí)際上是重復(fù)勞動,因?yàn)榍笠粋€指針數(shù)組的長度代碼是固定的),所以顯式的提供給我們這個長度是比較好的。

2. 如何使用

        將main函數(shù)的聲明為如下形式:

[cpp] view plain copy
print?
  1. int main( int argc, char *argv[]){  
  2.   
  3. /* 這里省略了函數(shù)體內(nèi)容 */  
  4.   
  5. }  

      注意事項(xiàng):

        1. argv是一個指針數(shù)組,要明白它的存數(shù)格式。它的每個元素都是一個字符指針,數(shù)組的末尾是一個NULL指針。

        2. 也是由于argv是一個指針數(shù)組,它指向數(shù)組的第一個元素(是一個字符指針),所以argv是一個指向字符指針的指針,所以可以將其聲明為char **argv。即聲明為:【 int main( int argc, char **argv ) 】

        3. 參數(shù)名稱是不重要的,你可以聲明為其它的名字,比如 【 int main( int a, char *b[] ) 】 都是可以的。

        4. 指針數(shù)組argv的第 1 個元素,即argv[0],是程序名,也就是你的可執(zhí)行文件的名字。

        5. 如果你輸入的參數(shù)中有空格,應(yīng)該使用雙引號括起來。

3.使用舉例

        實(shí)現(xiàn)一個類似echo命令的程序:將所有參數(shù)打印出來。文件名為:my_echo.c

[cpp] view plain copy
print?
  1. #include <stdio.h>   
  2. #include <stdlib.h>   
  3.   
  4. /* 實(shí)現(xiàn)類似echo的輸出一行 */   
  5.   
  6. #define BUFFER_SIZE 100  
  7.   
  8. void function( FILE *input );  
  9.   
  10. int main( int argc, char *argv[]){  
  11.     printf("argc == %d  /n", argc);   
  12.       
  13.     char ** temp = argv;  /* 保留argv */  
  14.     while( *++temp != NULL ){  
  15.         printf("%s ", *temp);  
  16.     }   
  17.     printf("/n");  
  18.       
  19.     system("pause");  
  20.     return EXIT_SUCCESS;  
  21. }  

執(zhí)行結(jié)果:(默認(rèn)得到的可執(zhí)行文件為my_echo.ext,在執(zhí)行函數(shù)時,傳遞參數(shù)為hello world, hello C!)。如果在命令行中打開,使用my_echo.exe hello world, hello C!

[cpp] view plain copy
print?
  1. argc == 5  
  2. hello world, hello C!  

分析:只需要弄清楚指針數(shù)組的內(nèi)部結(jié)構(gòu),畫了張圖,見下面。

本文鏈接:http://blog.csdn.net/daheiantian/archive/2011/02/13/6246519.aspx
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
c語言main函數(shù)參數(shù)說明 轉(zhuǎn)載
C語言入門教程-命令行參數(shù)
C語言基礎(chǔ) - 指針(3)
C語言main函數(shù)參數(shù)
main函數(shù)中int argc和char *argv[]的含義,以及char **argv命名方式
(轉(zhuǎn))linux下 getopt() 函數(shù)的使用
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服