c語言中命令行參數argc,ARGV

開始

int main(int argc, const char * ARGV[])

在學習C語言的時候,大家都是編寫一個程式,然後在終端運行查看結果,輸入數位等等...... 不知道大家有沒有嘗試過讓你編寫的程式能夠像系統命令那樣接受參數呢? 比如說:ls -al這樣子。

如果想的話,就像上文那樣來聲明吧!

其中:

ARGV: 指標的指標

argc: 整數

舉個栗子

假設程式的名稱為test,當只輸入test,則由作業系統傳來的參數為:

argc = 1,表示只有一程式名稱;

argc只有一個元素,ARGV[0]指向輸入的程式路徑及名稱:./ 測試

當輸入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字串;

所以,以此類推~

結合實際栗子來講:

字符* 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]是編譯後的可執行檔名

本文內容參考自這裡

由...出版 R0uter

如非聲明,本人所著文章均為原創手打,轉載請註明本頁面鏈接和我的名字。

發表評論

您的電子郵件地址不會被公開. 必填字段標 *